Re: Cheapest way to poll for notifications? - Mailing list pgsql-general

From Craig Ringer
Subject Re: Cheapest way to poll for notifications?
Date
Msg-id 4B211E6F.1070700@postnewspapers.com.au
Whole thread Raw
In response to Re: Cheapest way to poll for notifications?  (Merlin Moncure <mmoncure@gmail.com>)
Responses Re: Cheapest way to poll for notifications?  (Scott Ribe <scott_ribe@killerbytes.com>)
List pgsql-general
Merlin Moncure wrote:
> On Thu, Dec 10, 2009 at 8:23 AM, Craig Ringer
> <craig@postnewspapers.com.au> wrote:
>> Hi
>>
>> As Pg doesn't presently support client push for notifications arising from
>> LISTEN/NOTIFY, I'm wondering if anybody here has done any research into the
>> cheapest statement to issue to check for such notifications.
>
> notifications are sent to the client as soon as they are generated and
> the socket is not otherwise being used.  psql just prints the
> notifcation message following a query because that happens to be a
> convenient place to do it.  The only polling that has to be done (if
> any) is 100% client side.  There is an excellent example (in C) in the
> documentation showing a method of waiting on the connection socket for
> notification events when the connection is not in use by the client.

Aah, that makes sense. So psql is being sent (and buffering) the
notification immediately, and could choose to report it promptly - say
by calling recv(...) on its socket periodically using an alarm signal.
Since it's not important for psql to report notifications immediately
though, it only checks after statements.

Right?

Anyway, thanks for the explanation, it's appreciated.

--
Craig Ringer

pgsql-general by date:

Previous
From: Adrian Klaver
Date:
Subject: Re: pg_dump and ON DELETE CASCADE problem
Next
From: dipti shah
Date:
Subject: Re: Defining permissions for tables, schema etc..