[Pgpool-hackers] Automatic reattachment of the node in connection pooling mode

Tatsuo Ishii ishii at sraoss.co.jp
Fri Jan 28 07:49:07 UTC 2011


> Le 28/01/2011 08:31, Tatsuo Ishii a écrit :
>>> Le 28/01/2011 01:16, Tatsuo Ishii a écrit :
>>>>> One of my customers asks me today why pgpool doesn't check, from time to
>>>>> time, that the backend is now available in connection pool mode.
>>>>>
>>>>> Here is what we did with a pgpool 3.0.1, configured only for connection
>>>>> pooling and health checking:
>>>>>
>>>>>  * start postgresql (pg_ctl start)
>>>>>  * start pgpool (pgpool -f etc/pgpool.conf start)
>>>>>  * every connection works fine
>>>>>  * stop postgresql (pg_ctl start)
>>>>>  * health check detects the unavailability of the backend
>>>>>    and changes status of node 0 to 3
>>>>>  * no connection, which is good because backend is unavailable
>>>>>  * start postgresql (pg_ctl start)
>>>>>  * and the node still remains in status 3.
>>>>>
>>>>> What I would like to have is a way to check if the backend is now
>>>>> available. And reattach it if it is. All intern to pgpool. Any reason
>>>>> why not to do so?
>>>>>
>>>>> I can have misread the documentation, and I understand why this cannot
>>>>> happen in replication mode or master/slave mode. But in connection
>>>>> pooling only mode, I don't get it.
>>>>>
>>>>> If it seems to be a nice feature to have, I'm interested in working on this.
>>>>
>>>> I'm not sure if it's good feature. Say you have 2 DB servers and one
>>>> of their network connections goes shakey. It continues to up and down
>>>> every 10 seconds. If pgpool has such a feature, pgpool repeatedly does
>>>> failover every 10 seconds, which will break existing client connection
>>>> every 10 seconds. I'm sure the user is not happy with this situation.
>>>
>>> You can use two PostgreSQL servers in pooling mode? how does that work?
>> 
>> You can use the second server as the backup server. If the master
>> server godes down, degenration happens and pgpool starts to use the
>> second server.
>> 
> 
> Oh OK. Interesting, I didn't know that. That explains why it degenerates
> and checks for another backend.
> 
> I still see an interest to have this when a user has only one backend
> and is only in pooling mode.

Yeah, if there's only one backend, auto re-connect might be a valid
idea IMO. Question is, do we want new switch to enable the feature? Or
if there's only one backend, should we never disconnect the backend
even if it goes down?

>>> I'm speaking only of the pooling mode, without replication and load
>>> balancing. In this case, if the network goes up and down continuously,
>>> you continuously loose the connection and have to reattach node 0.
>> 
> 
> 
> -- 
> Guillaume
>  http://www.postgresql.fr
>  http://dalibo.com


More information about the Pgpool-hackers mailing list