From: Magnus Hagander on 9 Feb 2010 08:45 On Tue, Feb 9, 2010 at 14:03, Tollef Fog Heen <tollef.fog.heen(a)collabora.co.uk> wrote: > > (please Cc me on replies, I am not subscribed) > > Hi, > > libpq currently does not use TCP keepalives. This is a problem in our > case where we have some clients waiting for notifies and then the > connection is dropped on the server side. The client never gets the FIN > and thinks the connection is up. The attached patch unconditionally > adds keepalives. I chose unconditionally as this is what the server > does. We didn't need the ability to tune the timeouts, but that could > be added with reasonable ease. Seems reasonable to add this. Are there any scenarios where this can cause trouble, that would be fixed by having the ability to select non-standard behavior? I don't recall ever changing away from the standard behavior in any of my deployments, but that might be platform dependent? If not, I think this is small and trivial enough not to have to push back for 9.1 ;) -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/ -- Sent via pgsql-hackers mailing list (pgsql-hackers(a)postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
From: Tollef Fog Heen on 9 Feb 2010 08:57 ]] Magnus Hagander | Seems reasonable to add this. Are there any scenarios where this can | cause trouble, that would be fixed by having the ability to select | non-standard behavior? Well, it might be unwanted if you're on a pay-per-bit connection such as 3G, but in this case, it just makes the problem a bit worse than the server keepalive already makes it â it doesn't introduce a new problem. | I don't recall ever changing away from the standard behavior in any of | my deployments, but that might be platform dependent? If you were (ab)using postgres as an IPC mechanism, I could see it being useful, but not in the normal case. | If not, I think this is small and trivial enough not to have to push | back for 9.1 ;) \o/ -- Tollef Fog Heen UNIX is user friendly, it's just picky about who its friends are -- Sent via pgsql-hackers mailing list (pgsql-hackers(a)postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
From: Andrew Chernow on 9 Feb 2010 09:34 Tollef Fog Heen wrote: > (please Cc me on replies, I am not subscribed) > > Hi, > > libpq currently does not use TCP keepalives. This is a problem in our > case where we have some clients waiting for notifies and then the > connection is dropped on the server side. The client never gets the FIN > and thinks the connection is up. The attached patch unconditionally > adds keepalives. I chose unconditionally as this is what the server > does. We didn't need the ability to tune the timeouts, but that could > be added with reasonable ease. ISTM that the default behavior should be keep alives disabled, as it is now, and those wanting it can just set it in their apps: setsockopt(PQsocket(conn), SOL_SOCKET, SO_KEEPALIVE, ...) If you really want libpq to manage this, I think you need to expose the probe interval and timeouts. There should be some platform checks as well. Check out... http://www.mail-archive.com/pgsql-hackers(a)postgresql.org/msg128603.html -- Andrew Chernow eSilo, LLC every bit counts http://www.esilo.com/ -- Sent via pgsql-hackers mailing list (pgsql-hackers(a)postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
From: Fujii Masao on 9 Feb 2010 20:07 On Tue, Feb 9, 2010 at 11:34 PM, Andrew Chernow <ac(a)esilo.com> wrote: > If you really want libpq to manage this, I think you need to expose the > probe interval and timeouts. Agreed. Previously I was making the patch that exposes them as conninfo options so that the standby can detect a network outage ASAP in SR. I attached that WIP patch as a reference. Hope this helps. Regards, -- Fujii Masao NIPPON TELEGRAPH AND TELEPHONE CORPORATION NTT Open Source Software Center
From: daveg on 10 Feb 2010 16:08 On Tue, Feb 09, 2010 at 09:34:10AM -0500, Andrew Chernow wrote: > Tollef Fog Heen wrote: > >(please Cc me on replies, I am not subscribed) > > > >Hi, > > > >libpq currently does not use TCP keepalives. This is a problem in our > >case where we have some clients waiting for notifies and then the > >connection is dropped on the server side. The client never gets the FIN > >and thinks the connection is up. The attached patch unconditionally > >adds keepalives. I chose unconditionally as this is what the server > >does. We didn't need the ability to tune the timeouts, but that could > >be added with reasonable ease. > > ISTM that the default behavior should be keep alives disabled, as it is > now, and those wanting it can just set it in their apps: > > setsockopt(PQsocket(conn), SOL_SOCKET, SO_KEEPALIVE, ...) I disagree. I have clients who have problems with leftover client connections due to server host failures. They do not write apps in C. For a non-default change to be effective we would need to have all the client drivers, eg JDBC, psycopg, DBD-DBI, and the apps like psql make changes to turn it on. Adding this option as a non-default will not really help. -dg -- David Gould daveg(a)sonic.net 510 536 1443 510 282 0869 If simplicity worked, the world would be overrun with insects. -- Sent via pgsql-hackers mailing list (pgsql-hackers(a)postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
|
Next
|
Last
Pages: 1 2 3 4 5 6 Prev: set the cost of an aggregate function Next: bugfix - VIP: variadic function ignore strict flag |