<div dir="ltr">Hi Ishii-San<div><br></div><div>I am working on config framework modification to allow same name parameters with and without index postfix, I am almost done with the framework related changes.</div><div>And now for testing I need to add one such parameter and I was thinking instead of using a dummy configuration variable for testing I would rather add the <i>health_check_period</i> and <i>health_check_period[idx]</i> so that you can also use it.</div><div>For that can you tell me where do you want to create health_check_period variable for each backend? Is BackendInfo structure is the right place? <br></div><div><br></div><div>Thanks</div><div>Best Regards</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Apr 24, 2017 at 7:42 AM, Tatsuo Ishii <span dir="ltr">&lt;<a href="mailto:ishii@sraoss.co.jp" target="_blank">ishii@sraoss.co.jp</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">&gt;&gt; On 21-Apr-2017, at 4:31 AM, Tatsuo Ishii &lt;<a href="mailto:ishii@sraoss.co.jp">ishii@sraoss.co.jp</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Usama,<br>
&gt;&gt;<br>
&gt;&gt; Is it possible to have following config parameter at the same time?<br>
&gt;&gt; My feeling is we can&#39;t because current implementation of config<br>
&gt;&gt; handling does not allow it.<br>
&gt;&gt;<br>
&gt;&gt; health_check_period = 10<br>
&gt;&gt; health_check_period0 = 5<br>
&gt;<br>
&gt; 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.<br>
<br>
</span>That would be desirable.<br>
<div class="HOEnZb"><div class="h5"><br>
Best regards,<br>
--<br>
Tatsuo Ishii<br>
SRA OSS, Inc. Japan<br>
English: <a href="http://www.sraoss.co.jp/index_en.php" rel="noreferrer" target="_blank">http://www.sraoss.co.jp/index_<wbr>en.php</a><br>
Japanese:<a href="http://www.sraoss.co.jp" rel="noreferrer" target="_blank">http://www.sraoss.co.<wbr>jp</a><br>
<br>
&gt; Thanks<br>
&gt; Best regards<br>
&gt; Muhammad Usama<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt; Best regards,<br>
&gt;&gt; --<br>
&gt;&gt; Tatsuo Ishii<br>
&gt;&gt; SRA OSS, Inc. Japan<br>
&gt;&gt; English: <a href="http://www.sraoss.co.jp/index_en.php" rel="noreferrer" target="_blank">http://www.sraoss.co.jp/index_<wbr>en.php</a><br>
&gt;&gt; Japanese:<a href="http://www.sraoss.co.jp" rel="noreferrer" target="_blank">http://www.sraoss.co.<wbr>jp</a><br>
&gt;&gt;<br>
&gt;&gt;&gt; Hi,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; This is a Request for Comments on the new implementation of health<br>
&gt;&gt;&gt; check aiming for Pgpool-II 3.7.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Problems:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Current implementation of health check is a single serial processing<br>
&gt;&gt;&gt; for all of database nodes. This implies some limitations for health<br>
&gt;&gt;&gt; check process: 1) it is not possible to specify different health check<br>
&gt;&gt;&gt; configuration values for each database node, 2) node failure detection<br>
&gt;&gt;&gt; may take longer. For example, if it takes 10 seconds before detecting<br>
&gt;&gt;&gt; node 0 failure, then detecting node 1 failure will be delayed at least<br>
&gt;&gt;&gt; 10 seconds because it starts node failure detection after node 0.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; The solution:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Allow to specify health check parameters for each node. Pgpool.conf<br>
&gt;&gt;&gt; will look like:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; health_check_period0 = 10<br>
&gt;&gt;&gt; health_check_timeout0 = 20<br>
&gt;&gt;&gt; :<br>
&gt;&gt;&gt; :<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; where &quot;0&quot; means database node 0 (similar concept as &quot;backend_*0<br>
&gt;&gt;&gt; parameters).<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; To make admin&#39;s life easier, current parameters can be used as<br>
&gt;&gt;&gt; well. Suppose there are 3 nodes, and we have:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; health_check_period = 10<br>
&gt;&gt;&gt; health_check_period0 = 5<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; then health_check_period for node 1 and 2 will be 10, while<br>
&gt;&gt;&gt; health_check_period for node 0 will be 5. So parameter names without<br>
&gt;&gt;&gt; node id works as a &quot;global variable&quot;.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; The implementation:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Create separate child process of pgpool main process and let do the<br>
&gt;&gt;&gt; heal check job for each database node. Once the health check child<br>
&gt;&gt;&gt; process detects node failure, it signals to main process and main<br>
&gt;&gt;&gt; process will perform failover.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; This architecture makes pgpool main process simpler and robust, while<br>
&gt;&gt;&gt; earlier detection of node failure by the health check child process.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Comments and suggestions are welcome.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Best regards,<br>
&gt;&gt;&gt; --<br>
&gt;&gt;&gt; Tatsuo Ishii<br>
&gt;&gt;&gt; SRA OSS, Inc. Japan<br>
&gt;&gt;&gt; English: <a href="http://www.sraoss.co.jp/index_en.php" rel="noreferrer" target="_blank">http://www.sraoss.co.jp/index_<wbr>en.php</a><br>
&gt;&gt;&gt; Japanese:<a href="http://www.sraoss.co.jp" rel="noreferrer" target="_blank">http://www.sraoss.co.<wbr>jp</a><br>
&gt;&gt;&gt; ______________________________<wbr>_________________<br>
&gt;&gt;&gt; pgpool-hackers mailing list<br>
&gt;&gt;&gt; <a href="mailto:pgpool-hackers@pgpool.net">pgpool-hackers@pgpool.net</a><br>
&gt;&gt;&gt; <a href="http://www.pgpool.net/mailman/listinfo/pgpool-hackers" rel="noreferrer" target="_blank">http://www.pgpool.net/mailman/<wbr>listinfo/pgpool-hackers</a><br>
</div></div></blockquote></div><br></div>