Re: Followup comment for bug report 'postmaster ignores SIGPIPE' [was: Bug#255208: Would help with client aborts, too.]
От | Jim C. Nasby |
---|---|
Тема | Re: Followup comment for bug report 'postmaster ignores SIGPIPE' [was: Bug#255208: Would help with client aborts, too.] |
Дата | |
Msg-id | 20060327150147.GW80726@pervasive.com обсуждение исходный текст |
Ответ на | Re: Followup comment for bug report 'postmaster ignores SIGPIPE' [was: Bug#255208: Would help with client aborts, too.] (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-bugs |
On Mon, Mar 27, 2006 at 09:50:38AM -0500, Tom Lane wrote: > "Jim C. Nasby" <jnasby@pervasive.com> 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 jnasby@pervasive.com Pervasive Software http://pervasive.com work: 512-231-6117 vcard: http://jim.nasby.net/pervasive.vcf cell: 512-569-9461
В списке pgsql-bugs по дате отправления: