Re: Optimize LISTEN/NOTIFY
| От | Joel Jacobson |
|---|---|
| Тема | Re: Optimize LISTEN/NOTIFY |
| Дата | |
| Msg-id | 6070e73e-9a1d-48e2-bd5f-d69623dc8e1f@app.fastmail.com обсуждение исходный текст |
| Ответ на | Re: Optimize LISTEN/NOTIFY ("Joel Jacobson" <joel@compiler.org>) |
| Список | pgsql-hackers |
On Wed, Nov 12, 2025, at 21:37, Joel Jacobson wrote: > Sequence of events: > > 1. In the notifier, PreCommit_Notify calls asyncQueueAddEntries, > which updates QUEUE_HEAD when the page is full, > (and sets queueHeadAfterWrite to this value). > > 2. At this time, a listener wakes up and asyncQueueAddEntries Correction: I meant "asyncQueueReadAllNotifications" here, not "asyncQueueAddEntries". > reads the current QUEUE_HEAD value and stores it > in its local `head` variable, and starts reading up to this pos. > > 3. In the notifier, PreCommit_Notify calls asyncQueueAddEntries > the second time, which updates QUEUE_HEAD, > and sets queueHeadAfterWrite to the final value > before returning. > > For this reason, I think the listener could actually stop > in between queueHeadBeforeWrite and queueHeadAfterWrite, > since it's local `head` variable could get the intermediary > QUEUE_HEAD value, when a page is full. /Joel
В списке pgsql-hackers по дате отправления: