Re: Optimize LISTEN/NOTIFY

Joel Jacobson <joel@compiler.org>

From: "Joel Jacobson" <joel@compiler.org>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2025-10-27T06:18:37Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Optimize LISTEN/NOTIFY via shared channel map and direct advancement.

  2. Fix incorrect logic for caching ResultRelInfos for triggers

On Mon, Oct 27, 2025, at 02:27, Chao Li wrote:
>> On Oct 27, 2025, at 07:24, Joel Jacobson <joel@compiler.org> wrote:
>> 
>> Write-up of changes since v20:
>> 
>> Two new fields have been added to QueueBackendStatus:
>> + QueuePosition advisoryPos; /* safe skip-ahead position */
>> + bool advancingPos; /* backend is reading the queue */
...
> I did a quick review on v21 only focusing on the “direct advancement” logic.
>
> In v21, you added advisoryPos and advancingPos which is same as my 
> proposed solution. But you missed an important point from mine.
>
...
> From this perspective, we need to add a new field 
> adviancingTillPos to QueueBackendStatus. (This field was also missing 
> from my proposed patch).

I'm doubtful yet another field is worth the added complexity cost.

Before increasing the complexity further, I think we should first
try to simulate somewhat realistic workloads, to see if we actually
have a problem first.

/Joel