From: | Joachim Wieland <joe(at)mcknight(dot)de> |
---|---|
To: | Andrew Gierth <andrew(at)tao11(dot)riddles(dot)org(dot)uk> |
Cc: | Martijn van Oosterhout <kleptog(at)svana(dot)org>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Listen / Notify rewrite |
Date: | 2009-11-12 10:21:01 |
Message-ID: | dc7b844e0911120221t67aaa719wa25ea2767bf2d5f8@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Thu, Nov 12, 2009 at 2:12 AM, Andrew Gierth
<andrew(at)tao11(dot)riddles(dot)org(dot)uk> wrote:
> Does it cope with the case where a trigger is doing NOTIFY, and you do
> a whole-table update, therefore dumping potentially millions of
> notifications in at once?
>
> (for example a rare maintenance operation on a table which has a
> listen/notify arrangement triggered by single inserts or updates)
>
> The existing implementation copes with that just fine.
As long as you use the existing way to send out notifications by just
sending "NOTIFY foo", then yes, it will cope with millions of them
just fine because it will collapse them into one notification as does
the current implementation (contrary to the current implementation a
notification will be received from every transaction that has sent one
- the current implementation even collapses notifications from
different transactions).
However if you decide to use the new syntax and add a distinct payload
to every NOTIFY, then you also send out millions of notifications...
With the proposed patch the queue has space for up to about 81,787,680
notifications. The limits are mainly imposed by slru.c which defines
page size, pages per segment and the number of segments available. We
could easily bump that up to a multiple of the current limits if we
have decided that we need to...
Joachim
From | Date | Subject | |
---|---|---|---|
Next Message | Itagaki Takahiro | 2009-11-12 10:54:50 | Re: Syntax for partitioning |
Previous Message | Boszormenyi Zoltan | 2009-11-12 10:17:53 | Re: CommitFest 2009-09, two weeks on |