Re: LISTEN/NOTIFY bug: VACUUM sets frozenxid past a xid in async queue
От | Yura Sokolov |
---|---|
Тема | Re: LISTEN/NOTIFY bug: VACUUM sets frozenxid past a xid in async queue |
Дата | |
Msg-id | d186fba0-dc65-4274-aa96-3906bbb2e530@postgrespro.ru обсуждение исходный текст |
Ответ на | Re: LISTEN/NOTIFY bug: VACUUM sets frozenxid past a xid in async queue (Matheus Alcantara <matheusssilv97@gmail.com>) |
Ответы |
Re: LISTEN/NOTIFY bug: VACUUM sets frozenxid past a xid in async queue
Re: LISTEN/NOTIFY bug: VACUUM sets frozenxid past a xid in async queue |
Список | pgsql-hackers |
29.08.2025 01:31, Matheus Alcantara пишет: > On Thu Aug 21, 2025 at 8:14 PM -03, Matheus Alcantara wrote: >> I'll work on this considering the initial Daniil comments at [1] >> >> [1] https://www.postgresql.org/message-id/CAJDiXgg1ArRB1-6wLtXfVVnQ38P9Y%2BCDfEc9M2TXiOf_4kfBMg%40mail.gmail.com >> > I've been working on this on the last few days, please see the attached > patch version. > > In this new version I tried to follow the suggestion from Daniil of > scanning all pages from tail to head of the async queue. Since we still need to scan those pages, couldn't we mark finished transactions as committed/aborted? This way we may to not hold datfrozenxid for a long time and will allow both safe clog truncation and safe async queue notification. More over, most notifications could be marked as completed in AtCommit_Notify already. So there is a need to recheck a few notifications that were written but not marked in AtCommit_Notify. Since AsyncQueueEntry field is used only to check visibility, looks like it is safe to set it to FrozenTransactionId. -- regards Yura Sokolov aka funny-falcon
В списке pgsql-hackers по дате отправления: