Re: remove spurious CREATE INDEX CONCURRENTLY wait

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: remove spurious CREATE INDEX CONCURRENTLY wait
Дата
Msg-id 2087667.1604971933@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: remove spurious CREATE INDEX CONCURRENTLY wait  (Michael Paquier <michael@paquier.xyz>)
Ответы Re: remove spurious CREATE INDEX CONCURRENTLY wait
Re: remove spurious CREATE INDEX CONCURRENTLY wait
Список pgsql-hackers
Michael Paquier <michael@paquier.xyz> writes:
>> +        LWLockAcquire(ProcArrayLock, LW_EXCLUSIVE);
>> +        MyProc->vacuumFlags |= PROC_IN_SAFE_IC;
>> +        ProcGlobal->vacuumFlags[MyProc->pgxactoff] = MyProc->vacuumFlags;
>> +        LWLockRelease(ProcArrayLock);

> I can't help noticing that you are repeating the same code pattern
> eight times.  I think that this should be in its own routine, and that
> we had better document that this should be called just after starting
> a transaction, with an assertion enforcing that.

Do we really need exclusive lock on the ProcArray to make this flag
change?  That seems pretty bad from a concurrency standpoint.

            regards, tom lane



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Michael Paquier
Дата:
Сообщение: Re: remove spurious CREATE INDEX CONCURRENTLY wait
Следующее
От: Michael Paquier
Дата:
Сообщение: Re: remove spurious CREATE INDEX CONCURRENTLY wait