Re: Can concurrent create index concurrently block each other?

Поиск
Список
Период
Сортировка
От Konstantin Knizhnik
Тема Re: Can concurrent create index concurrently block each other?
Дата
Msg-id cac8e252-d209-4ef6-8e2b-26a9f0efe94c@garret.ru
обсуждение исходный текст
Ответ на Re: Can concurrent create index concurrently block each other?  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
On 15/10/2023 10:59 pm, Tom Lane wrote:
> Konstantin Knizhnik <knizhnik@garret.ru> writes:
>> One our customer complains that he spawned two `create index
>> concurrently` for two different tables and both stuck in"waiting for old
>> snapshots".
>> I wonder if two CIC can really block each other in `WaitForOlderSnapshots`?
> Since v14, we won't wait for another CIC unless it is processing a
> partial or expressional index.  (According to the comments for
> WaitForOlderSnapshots, anyway.)  What PG version is this, and what
> kind of indexes are being rebuilt?
>
> In any case, if they were blocking each other that would be reported
> as a deadlock, since they'd use VirtualXactLock() which relies on
> the heavyweight lock manager.  What seems more likely is that your
> customer had some other old transaction sitting idle and blocking both
> of them.  Looking into pg_locks would provide more definitive evidence
> about what they are waiting for.

Sorry, for false alarm. We have found long running truncation which 
actually blocks CIC in this case.
I have asked this question because customer has wrote that there was no 
other long living active transactions, but it was not true.




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

Предыдущее
От: Bowen Shi
Дата:
Сообщение: Re: Requiring recovery.signal or standby.signal when recovering with a backup_label
Следующее
От: Michael Paquier
Дата:
Сообщение: Re: Add a new BGWORKER_BYPASS_ROLELOGINCHECK flag