On Mon, Mar 27, 2006 at 09:50:38AM -0500, Tom Lane wrote: > "Jim C. Nasby" <[EMAIL PROTECTED]> writes: > > On Sun, Mar 26, 2006 at 08:34:46PM -0500, Tom Lane wrote: > >> The question is whether doing either one is really a material > >> improvement, seeing that neither is going to provoke an abort > >> until/unless the backend actually tries to write something to the client. > > > Is there a server equivalent to PQstatus? If there were one, couldn't > > the server periodically ping the client? > > No, and do you really want the server stopping its processing of the > query just to go see if the client is still alive? This would slow > things down and introduce a whole new failure mode, ie, client doesn't > answer ping fast enough so its session gets aborted.
I guess it depends on how things are setup. Something like the following probably wouldn't pose a tremendous amount of overhead... set alarm 10 seconds; bool ping_sent; on alarm: if ping_sent then call to see if a ping reply is waiting for us (would this just sit in the network buffer, or would we actually get interrupted) if no ping then if timeout exceeded then abort backend; endif else set ping_sent = false; endif else ping_client(); set ping_set = true; endif Of course, the proof would be in doing some performance testing... -- Jim C. Nasby, Sr. Engineering Consultant [EMAIL PROTECTED] Pervasive Software http://pervasive.com work: 512-231-6117 vcard: http://jim.nasby.net/pervasive.vcf cell: 512-569-9461 ---------------------------(end of broadcast)--------------------------- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq