From: | "Joel Jacobson" <joel(at)compiler(dot)org> |
---|---|
To: | "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "Rishu Bagga" <rishu(dot)postgres(at)gmail(dot)com> |
Cc: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, "nik(at)postgres(dot)ai" <nik(at)postgres(dot)ai> |
Subject: | Re: Proposal: Out-of-Order NOTIFY via GUC to Improve LISTEN/NOTIFY Throughput |
Date: | 2025-07-18 06:46:06 |
Message-ID: | 47c96d86-b47a-4b2d-8ff1-6171541a89e4@app.fastmail.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Fri, Jul 18, 2025, at 03:28, Tom Lane wrote:
> So I sympathize with concerns about how well the notification code
> scales, but I think you're going to have to do a ton more work than
> this to get to anything that would pass muster to get committed.
> In particular, I'd really want to see something that involves
> explicitly opting-into out-of-order delivery on a per-NOTIFY basis,
> because anything else will break too many applications. The
> underlying queue mechanism is going to need a serious rethink, too.
> My guess is that we'd need to move to something involving multiple
> queues rather than just one, and I'm not very sure how that ought
> to work. (But perhaps queuing in-order notifications separately
> from not-guaranteed-in-order notifications would help? Or maybe
> the latter should be transmitted in some other way entirely.)
I agree opting-into out-of-order delivery on a per-NOTIFY basis
sounds like a great idea.
For all the exiting users that rely on in-order delivery,
and those who are not really sure they would dare to make the switch,
do we want to try to do something to improve their use-cases?
It doesn't seem possible to do better than what we already do
when all backends listen on the same channel.
However, for cases when up to K backends listen on the same channel (multicast),
my patch and benchmark in the other thread suggests we can achieve massive
improvements of parallelization of both LISTEN/UNLISTEN as well as NOTIFY
without introducing that much extra complexity.
Do we find this goal worth pursuing on its own?
Or should we only focus on exposing a new third parameter to pg_notify()
to indicate out-of-order delivery?
/Joel
From | Date | Subject | |
---|---|---|---|
Next Message | John Naylor | 2025-07-18 06:47:46 | Re: Improving and extending int128.h to more of numeric.c |
Previous Message | John Naylor | 2025-07-18 06:42:00 | Re: Improving and extending int128.h to more of numeric.c |