[pgpool-hackers: 2273] Re: RFC: New health check implementation
Muhammad Usama
m.usama at gmail.com
Fri Apr 21 15:47:30 JST 2017
> On 21-Apr-2017, at 4:31 AM, Tatsuo Ishii <ishii at sraoss.co.jp> wrote:
>
> Usama,
>
> Is it possible to have following config parameter at the same time?
> My feeling is we can't because current implementation of config
> handling does not allow it.
>
> health_check_period = 10
> health_check_period0 = 5
Yes, having the same named configuration parameter with and without index postfix would cause problem with the current implementations, but if we want to support this I can tweak the configuration framework to allow that.
Thanks
Best regards
Muhammad Usama
>
> Best regards,
> --
> Tatsuo Ishii
> SRA OSS, Inc. Japan
> English: http://www.sraoss.co.jp/index_en.php
> Japanese:http://www.sraoss.co.jp
>
>> Hi,
>>
>> This is a Request for Comments on the new implementation of health
>> check aiming for Pgpool-II 3.7.
>>
>> Problems:
>>
>> Current implementation of health check is a single serial processing
>> for all of database nodes. This implies some limitations for health
>> check process: 1) it is not possible to specify different health check
>> configuration values for each database node, 2) node failure detection
>> may take longer. For example, if it takes 10 seconds before detecting
>> node 0 failure, then detecting node 1 failure will be delayed at least
>> 10 seconds because it starts node failure detection after node 0.
>>
>> The solution:
>>
>> Allow to specify health check parameters for each node. Pgpool.conf
>> will look like:
>>
>> health_check_period0 = 10
>> health_check_timeout0 = 20
>> :
>> :
>>
>> where "0" means database node 0 (similar concept as "backend_*0
>> parameters).
>>
>> To make admin's life easier, current parameters can be used as
>> well. Suppose there are 3 nodes, and we have:
>>
>> health_check_period = 10
>> health_check_period0 = 5
>>
>> then health_check_period for node 1 and 2 will be 10, while
>> health_check_period for node 0 will be 5. So parameter names without
>> node id works as a "global variable".
>>
>> The implementation:
>>
>> Create separate child process of pgpool main process and let do the
>> heal check job for each database node. Once the health check child
>> process detects node failure, it signals to main process and main
>> process will perform failover.
>>
>> This architecture makes pgpool main process simpler and robust, while
>> earlier detection of node failure by the health check child process.
>>
>> Comments and suggestions are welcome.
>>
>> Best regards,
>> --
>> Tatsuo Ishii
>> SRA OSS, Inc. Japan
>> English: http://www.sraoss.co.jp/index_en.php
>> Japanese:http://www.sraoss.co.jp
>> _______________________________________________
>> pgpool-hackers mailing list
>> pgpool-hackers at pgpool.net
>> http://www.pgpool.net/mailman/listinfo/pgpool-hackers
More information about the pgpool-hackers
mailing list