From: | Greg Stark <gsstark(at)mit(dot)edu> |
---|---|
To: | Gurjeet Singh <singh(dot)gurjeet(at)gmail(dot)com> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Carel Combrink <s25291930(at)tuks(dot)co(dot)za>, pgsql-novice(at)postgresql(dot)org |
Subject: | Re: PostgreSQL questions |
Date: | 2010-03-22 15:56:29 |
Message-ID: | 407d949e1003220856i3a44b246i745adff1a4c028eb@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-novice |
On Thu, Mar 18, 2010 at 5:55 AM, Gurjeet Singh <singh(dot)gurjeet(at)gmail(dot)com> wrote:
> Slide 9 says:
>
> Events can be lost!
> – If the same event occurs between two calls on
> collection by a backend, it will only see one of them
> – Because pg_listener has one row per (event,
> listener) pair.
>
> And I think these limitations are being remedied by the new implementation
> in 9.0.
Anything that describes notifications as "events" is on the wrong
track. This isn't a queueing system, it's a facility is analogous to
unix signals or hardware interrupts -- notifications are condition
variables. If your cache is invalidated twice you only need to know
that it was invalidated, not how many times.
Queueing systems are hard, you have to deal with large volumes of
short-lived data and deal with things like priorities and so on.
Interrupt mechanisms are easy, they're just a small set of flags that
need to be flipped and checked at the right time.
--
greg
From | Date | Subject | |
---|---|---|---|
Next Message | Ryan Garvey | 2010-03-22 16:02:12 | How do you query all columns and all tables for a specific string |
Previous Message | A. Kretschmer | 2010-03-22 08:07:31 | Re: Speed question - new view using preview view components |