> -----Original Message-----
> From: Tom Lane [mailto:tgl@sss.pgh.pa.us]
> Sent: Tuesday, May 03, 2005 9:31 AM
> To: Hannu Krosing
> Cc: Heikki Linnakangas; Neil Conway; Oliver Jowett;
> adnandursun@asrinbilisim.com.tr; Peter Eisentraut; Alvaro Herrera;
> pgsql-hackers@postgresql.org
> Subject: Re: [HACKERS] Feature freeze date for 8.1
>
> [...]
> I am a tad worried about the possibility that if the client
> does nothing for long enough, the TCP output buffer will fill
> causing the backend to block at send(). A permanently blocked
> backend is bad news from a performance point of view (it
> degrades the sinval protocol for everyone else).
So use MSG_DONTWAIT or O_NONBLOCK on the keepalive packets.
That won't stop the buffer from getting filled up, but if you
get an EAGAIN while sending a keepalive packet, you know the
client is either dead or really busy.
__
David B. Held
Software Engineer/Array Services Group
200 14th Ave. East, Sartell, MN 56377
320.534.3637 320.253.7800 800.752.8129