Re: Connections hang indefinitely while taking a gin index's LWLockbuffer_content lock
От | Andrey Borodin |
---|---|
Тема | Re: Connections hang indefinitely while taking a gin index's LWLockbuffer_content lock |
Дата | |
Msg-id | ACFDB1E2-31C1-4C30-B6C1-022F7B93EC8F@yandex-team.ru обсуждение исходный текст |
Ответ на | Re: Connections hang indefinitely while taking a gin index's LWLockbuffer_content lock (Alexander Korotkov <aekorotkov@gmail.com>) |
Ответы |
Re: Connections hang indefinitely while taking a gin index's LWLockbuffer_content lock
|
Список | pgsql-hackers |
Hi! > 10 дек. 2018 г., в 0:25, Alexander Korotkov <aekorotkov@gmail.com> написал(а): >> >> There's a patch above in this thread 0001-Use-correct-locking-protocol-during-GIN-posting-tree.patch where I propose stampingevery deleted page with GinPageSetDeleteXid(page, ReadNewTransactionId()); and avoid reusing the page before TransactionIdPrecedes(GinPageGetDeleteXid(page),RecentGlobalDataXmin). >> Should we leave alone this bug for future fixes to keep current fix noninvasive? > > I think since is separate bug introduced in PostgreSQL 9.4, which > should be backpatched with separate commit. Could you please extract > patch dealing with GinPageSetDeleteXid() and GinPageGetDeleteXid(). > The rest of work made in your patch should be considered for master. PFA this part. In thread about GiST vacuum Heikki was not very happy with reusing PageHeader->pd_prune_xid for this. Butwe somewhat concluded that this might be OK. Anyway, there's whole page, we can store those bits anywhere. > BTW, what do you think about locking order in ginRedoDeletePage()? Do > you have any explanation of current behavior? It seems to me that locking order must be left->deleted->parent. Best regards, Andrey Borodin.
В списке pgsql-hackers по дате отправления: