Re: TCP keepalive support for libpq - Mailing list pgsql-hackers

From Marko Kreen
Subject Re: TCP keepalive support for libpq
Date
Msg-id e51f66da1002120750k7f2c5f7bj1aaf121cb275435e@mail.gmail.com
Whole thread Raw
In response to Re: TCP keepalive support for libpq  (Tollef Fog Heen <tollef.fog.heen@collabora.co.uk>)
Responses Re: TCP keepalive support for libpq
List pgsql-hackers
On 2/11/10, Tollef Fog Heen <tollef.fog.heen@collabora.co.uk> wrote:
>  | 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.
>
>
>  FWIW, this is my case.  My application uses psycopg, which provides no
>  way to get access to the underlying socket.  Sure, I could hack my way
>  around this, but from the application writer's point of view, I have a
>  connection that I expect to stay around and be reliable.  Whether that
>  connection is over a UNIX socket, a TCP socket or something else is
>  something I would rather not have to worry about; it feels very much
>  like an abstraction violation.

FYI, psycopg does support setting keepalive on fd:
 http://github.com/markokr/skytools-dev/blob/master/python/skytools/psycopgwrapper.py#L105


The main problem with generic keepalive support is the inconsistencies
between OS'es.  I see 3 ways to handle it:

1) Let user set it on libpq's fd, as now.
2) Give option to set keepalive=on/off, but no timeouts
3) Support all 3 parameters (keepidle, keepintvl, keepcnt)and ignore parameters not supported by OS.  Details here:
http://www.kernel.org/doc/man-pages/online/pages/man7/tcp.7.htmlLinuxsupports all 3, Windows 2, BSDs only keepidle.
 

I would prefer 3) or 1) to 2).

-- 
marko


pgsql-hackers by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: review: More frame options in window functions
Next
From: Heikki Linnakangas
Date:
Subject: Re: Re: [COMMITTERS] pgsql: Make standby server continuously retry restoring the next WAL