| From: | Nikolay Samokhvalov <nik(at)postgres(dot)ai> |
|---|---|
| To: | pgsql-hackers mailing list <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: docs: LISTEN/NOTIFY performance considerations |
| Date: | 2026-07-21 17:24:44 |
| Message-ID: | CAM527d8oDVb2K+tTjpjLkd7g14HLDiwwnvv=rcn4BMEs=MatkQ@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Thu, Jul 10, 2025 at 4:50 PM Nikolay Samokhvalov <nik(at)postgres(dot)ai> wrote:
> Greetings!
>
> LISTEN/NOTIFY has known performance issues that aren't documented but
> regularly surprise users in production – my customers and I encountered
> some of them multiple times.
>
> They were also discussed in the past, e.g.,:
> - 2008:
> https://www.postgresql.org/message-id/5215.1204048454@sss.pgh.pa.us
> - 2013:
> https://www.postgresql.org/message-id/3598.1363354686@sss.pgh.pa.us
>
> Recently, Recall.ai had production outages from hitting these exact issues:
> https://www.recall.ai/blog/postgres-listen-notify-does-not-scale (popped
> up to no.1 position on HN right now:
> https://news.ycombinator.com/item?id=44490510)
>
> It's probably a good time to consider improving this area, but while it's
> not happening, I propose documenting the risks to help users avoid
> incidents (backpatching to all supported versions).
>
> The proposed docs patch to the LISTEN/NOTIFY docs includes words about:
> 1. Global lock during commit affecting all databases in cluster
> 2. O(N²) duplicate checking performance
> 3. How to diagnose (log_lock_waits example)
> 4. Alternatives (logical decoding)
>
>
> Thoughts?
>
> Nik
>
We were just recording a podcast episode with DBOS founders, and this topic
was mentioned – would be great to have these limitations explicitly
documented,
Nik
| From | Date | Subject | |
|---|---|---|---|
| Next Message | surya poondla | 2026-07-21 17:26:01 | Re: Fix races conditions in DropRole() and GrantRole() |
| Previous Message | Tomas Vondra | 2026-07-21 16:24:22 | Re: hashjoins vs. Bloom filters (yet again) |