</itemizedlist>
</sect2>
- <sect2>
+ <sect2 id="migration-to-version-4-1">
<!--
<title>Migration to Version 4.1</title>
-->
</para>
</listitem>
+ <listitem>
+ <!--
+ 2019-08-29 [69419ac4]
+ -->
+ <para>
+ 多数決ルールを設定する<xref linkend="guc-enable-consensus-with-half-votes">パラメータを追加しました。 (Muhammd Usama, Tatsuo Ishii)
+ </para>
+ <para>
+ これは、偶数(すなわち、2, 4, 6...) watchdogクラスタにおけるクォーラムの存在および多数決の決定における振る舞いを変更します。
+ 奇数のクラスタ(3, 5, 7...)は影響を受けません。
+ このパラメータがオフ(デフォルトです)の場合、2ノードのwatchdogクラスタは、クォーラムを持つためには2ノードの両方が生存している必要があります。
+ クォーラムが存在しないと、1) VIPが失われます 2) フェイルオーバスクリプトが実行されません 3) watchdogのマスターが存在しなくなります。
+ 特に#2は、既存の<productname>PostgreSQL</productname>がダウンしても新しいプライマリが存在しなくなるので、困ったことになるでしょう。
+ おそらく2ノードのwatchdogクラスタユーザはi、このパラメータをオンにして、今までと同様に振る舞まうようにしたいでしょう。
+ 一方4ノード以上の偶数watchdogクラスタユーザはこのパラメータがオフであることにメリットがあります。
+ なぜなら、半分のwatchdogノードがダウンしてsplit brainになる可能性を防ぐことができるからです。
+ </para>
+ </listitem>
+
<listitem>
<!--
2019-07-02 [d86c71d1]
</listitem>
</varlistentry>
+ <varlistentry id="guc-enable-consensus-with-half-votes" xreflabel="enable_consensus_with_half_votes">
+ <term><varname>enable_consensus_with_half_votes</varname> (<type>boolean</type>)
+ <indexterm>
+ <primary><varname>cenable_consensus_with_half_votes</varname>設定パラメータ</primary>
+ </indexterm>
+ </term>
+ <listitem>
+ <para>
+ このパラメータは<productname>Pgpool-II</productname>が、クォーラムとフェイルオーバにおける合意を解決する際に、どのように多数決ルールにおける計算を行うかを設定します。
+ </para>
+ <para>
+ このパラメータがオンなら、クォーラムとフェイルオーバの合意のために、全体のうち半数の投票だけでよくなります。
+ そうでなければ、全体のうち少なくとも半数に加えて1票の投票が必要になります。
+ フェイルオーバにおいては、これは<xref linkend="guc-failover-require-consensus">と同期して動作します。
+ クォーラムの存在決定、フェイルオーバにおける合意形成の両方において、watchdogクラスタが偶数の<productname>Pgpool-II</productname>ノードから構成されている場合にのみこのパラメータは効果があります。
+ 参加者が奇数のwatchdogクラスタにおける多数決決定の際には、このパラメータの設定値は影響しません。
+ </para>
+ <para>
+ たとえば、このパラメータがオンのときは、2ノードのwatchdogクラスタではクォーラムが存在するためには一つの<productname>Pgpool-II</productname>ノードが生きている必要があります。
+ このパラメータがオフのときは、2ノードのwatchdogクラスタではクォーラムが存在するためには2つの<productname>Pgpool-II</productname>ノードが生きている必要があります。
+ </para>
+ <para>
+ このパラメータがオンのときは、4ノードのwatchdogクラスタではクォーラムが存在するためには2つの<productname>Pgpool-II</productname>ノードが生きている必要があります。
+ このパラメータがオフのときは、3ノードのwatchdogクラスタではクォーラムが存在するためには2つの<productname>Pgpool-II</productname>ノードが生きている必要があります。
+ </para>
+ <para>
+ このパラメータがオンのときは、split-brainが発生するリスクがあることに注意してください。
+ たとえば、ノードA, B, C, Dからなる4ノードのクラスタでは、(A, B)と(C, D)の分断された2つのネットワークになる可能性があります。
+ (A, B)と(C, D)にとっては、それぞれ生きた2つのノードが存在するので、クォーラムは依然として存在します。
+ 各々のグループはそれぞれのマスタwatchdogを選び、これはすなわちsplit-brainです。
+ </para>
+ <para>
+ デフォルト値はオフです。
+ </para>
+ <para>
+ <varname>enable_consensus_with_half_votes</varname>は<productname>Pgpool-II</productname><emphasis>V4.1</emphasis>よりも前には存在しません。
+ 以前のバージョンは、あたかもこのパラメータがオンであるかのように動作します。
+ </para>
+ <para>
+ このパラメータは、サーバの起動時にのみ設定できます。
+ </para>
+ </listitem>
+ </varlistentry>
+
</variablelist>
</sect2>
</itemizedlist>
</sect2>
- <sect2>
+ <sect2 id="migration-to-version-4-1">
<title>Migration to Version 4.1</title>
<para>
Version 4.1 contains some changes that may affect compatibility
</para>
</listitem>
+ <listitem>
+ <!--
+ 2019-08-29 [69419ac4]
+ -->
+ <para>
+ Add parameter <xref
+ linkend="guc-enable-consensus-with-half-votes"> to configure
+ majority rule calculations. (Muhammd Usama, Tatsuo Ishii)
+ </para>
+ <para>
+ This changes the behavior of the decision of quorum existence and
+ failover consensus on even number (i.e. 2, 4, 6...) of watchdog
+ clusters. Odd number of clusters (3, 5, 7...) are not
+ affected. When this parameter is off (the default), a 2 node
+ watchdog cluster needs to have both 2 nodes are alive to have a
+ quorum. If the quorum does not exist and 1 node goes down, then
+ 1) VIP will be lost, 2) failover srcript is not executed and 3)
+ no watchdog master exists. Especially #2 could be troublesome
+ because no new primary <productname>PostgreSQL</productname>
+ exists if existing primary goes down. Probably 2 node watchdog
+ cluster users want to turn on this parameter to keep the existing
+ behavior. On the other hand 4 or more even number of watchdog
+ cluster users will benefit from this parameter is off because now
+ it prevents possible split brain when a half of watchdog nodes go
+ down.
+ </para>
+ </listitem>
+
<listitem>
<!--
2019-07-02 [d86c71d1]
</para>
</listitem>
+ <listitem>
+ <!--
+ 2019-08-29 [69419ac4]
+ -->
+ <para>
+ Add parameter <xref
+ linkend="guc-enable-consensus-with-half-votes"> to configure
+ majority rule calculations. (Muhammd Usama, Tatsuo Ishii)
+ </para>
+ <para>
+ Pgpool-II takes the decision of quorum existence and failover
+ consensus after receiving the exact 50% of votes when the
+ watchdog cluster is configured with an even number of nodes. With
+ <xref linkend="guc-enable-consensus-with-half-votes"> parameter,
+ users can tell <productname>Pgpool-II</productname>, whether the
+ distributed consensus in an even number of nodes cluster requires
+ (n/2) or ((n/2) +1) votes to decide the majority. Odd number of
+ clusters (3, 5, 7...) are not affected. Extra caution is needed
+ for 2 node watchdog cluster users. See <xref
+ linkend="migration-to-version-4-1"> for more details.
+ </para>
+ </listitem>
+
<listitem>
<!--
2019-01-27 [f03ebdba]