Pgpool-II 4.0.4 文書 | |||
---|---|---|---|
前のページ | 上に戻る | 付録 A. リリースノート | 次のページ |
リリース日: 2017-11-22
このバージョンでは、新しいwatchdog機能とノードごとのヘルスチェックの設定により、フェイルオーバの信頼性が向上しています。また、このバージョンでは、PostgreSQL 10の新しいSQLパーサ、ロジカルレプリケーション、およびいくつかの管理関数の名前の変更に対応しています。
Pgpool-II 3.7 の主な改善点は以下のとおりです。
クォーラム機能によりフェイルオーバを決定するようになりました。
pool_hbaではホスト名を指定できるようになりました。
PostgreSQLバックエンドごとにヘルスチェックパラメータを設定できるようになりました。
AWS Aurora に対応しました。
PostgreSQL 10 のSQLパーサを取り込みました。
ロジカルレプリケーションに対応しました。
クォーラム機能によりフェイルオーバを決定するようになりました。(Muhammad Usama)
Pgpool-IIはクォーラム機能を利用し、watchdogクラスタ内でPostgreSQLバックエンドノードのフェイルオーバを決定する機能を追加しました。この機能追加により、スプリットブレインを防止することができます。
この変更により、failover、failback、promote-node コマンドの処理も変更しました。
また、マスタノードだけがフェイルオーバーを実行することになったので、フェイルオーバ時にロックする必要がなくなりました。
この機能追加に伴い、以下の 3つのフェイルオーバに関するパラメータを追加しました。
failover_when_quorum_exists
failover_require_consensus
allow_multiple_failover_requests_from_node
pool_hbaでホスト名を指定できるようになりました。(Muhammad Usama)
pool_hba設定ファイルの address フィールドにおいて、以前はCIDRアドレスのみに対応していましたが、この修正により、ホスト名にも対応するようになりました。
この機能追加に伴い、以下の改善も行いました。
(1) pool_hba レコードはロード時に完全に解析されるようになりました。Raw レコード行ではなく、構造化されたデータを保存します。これにより、新規接続時間が短縮され、パフォーマンスが向上します。
(2) エラー/ログメッセージが改善されました。
(3) auth-options フィールドの処理が改善されました。
PostgreSQLノードごとにヘルスチェックパラメータを設定できるようになりました。(Tatsuo Ishi, Muhammad Usama)
従来のヘルスチェックでは、すべてのPostgreSQLノードを順番にチェックし、パラメータはノードごとには設定できず、全ノードで共通の設定でした。
この機能追加により、Pgpool-IIの親プロセスがPostgreSQLノードごとにヘルスチェックプロセスをフォークし、ヘルスチェックに関連するパラメータがノードごとに設定できるようになりました。
例えば、PostgreSQLバックエンドノードが3台の場合、以下のように設定すると、
health_check_period = 10 health_check_period0 = 5
ノード0にhealth_check_period = 5 が設定され、ノード1 と2 にhealth_check_period = 10が設定されます。
PostgreSQL 10 のパーサを取り込みました。(Bo Peng)
AWS Auroraに対応しました。 (Tatsuo Ishii)
プライマリノード検出ロジックを制御する新しいバックエンドフラグ「ALWAYS_MASTER」を追加しました。Aurora ではpg_is_in_recovery()
を使用できないため、Auroraの "writer"として指定されたバックエンドに「ALWAYS_MASTER」を割り当てます。Aurora は常にマスタに同じホスト名を使用するため、find_primary_node()
は「ALWAYS_MASTER」フラグが立っているノードIDを返します。
詳細は、ALWAYS_MASTERを参照してください。
それ以外は、Auroraではストリーミングレプリケーションモードを使用することができます。 Auroraではレプリケーション遅延を検査できないことに注意してください。sr_check_periodは常に0にする必要があります。
設定については AWS設定の例を参照してください。
ロジカルレプリケーションモードを追加しました。(Tatsuo Ishii)
ロジカルレプリケーションモードはロジカルレプリケーションを使用するPostgreSQLサーバと一緒に使うことができます。このモードでは、PostgreSQLがテーブルを同期する責任を持ちます。
このモードでは負荷分散が可能です。ロジカルレプリケーションは必ずしもすべてのテーブルをレプリケーションしないので、負荷分散させるテーブルがレプリケーションされるようにするのはユーザの責任です。
サンプルの設定ファイルは $prefix/etc/pgpool.conf.sample-logicalです。
pgpool_setup もロジカルレプリケーションモードに対応しました。
Test: Watchdog のテストケースを追加しました。 (Muhammad Usama)
Test: extended-query-test に新しいテストケース "node_js.data"を追加しました。 (Tatsuo Ishii)
Doc: 「pool_hba.conf ファイル」に関するドキュメントを更新しました。(Muhammad Usama)
pgpool_setupがslonyモードに対応しました。(Tatsuo Ishii)
OpenSSL 1.1に対応しました。(Tatsuo Ishii, Muhammad Usama)
Test: 新しいレグレッションテスト「069. memory_leak_extended」を追加しました。(Tatsuo Ishii)
Doc: インメモリキャッシュに関するドキュメントを更新しました。(Tatsuo Ishii)
Doc: ドキュメントに「インストールのヒント」を追加しました。(Tatsuo Ishii)
Test: 新しいレグレッションテスト「011.watchdoc_quorum_failover」を追加しました。(Tatsuo Ishii)
Test: 新しいテストケース「extended-query-test」を追加しました。(Tatsuo Ishii)
この新しいテストケースは、pgprotoコマンドを使い拡張クエリをテストするために追加しました。
保留中のメッセージとバックエンドの応答を確認するためのデバッグ情報を追加しました。(Tatsuo Ishii)
新しい関数pool_check_pending_message_and_reply()
を追加しました。保留中のメッセージの種類とバックエンドの応答メッセージの種類が一致しない場合、デバッグメッセージを出力します。今までは、read_kind_from_backend()
関数のみでした。
ヘルスチェックのためのデバッグ情報を追加しました。(Tatsuo Ishii)
pcp_node_infoコマンドの出力に「role」フィールドを追加しました。(Tatsuo Ishii)
「role」フィールドに「primary」、「standby」、「master」、「slave」のいずれかが出力されます。
master_slave_sub_modeパラメータのデフォルト値を「stream」に変更しました。(Tatsuo Ishii)
pool_config_variable.cのデフォルト値が「STREAM_MODE」であるため、この変更が必要でした。
終了時に新しいヘルスチェックプロセスをフォークするようにしました。(Tatsuo Ishii)
Doc: PGPOOL SHOWコマンドのパラメータグループに「health_check」を追加しました。(Tatsuo Ishii)
Doc: 古いhtmlドキュメント及び関連ファイルを削除しました。(Tatsuo Ishii)
ストリーミングレプリケーションモードで、'H' (flush) メッセージを受信した後に発生するハングアップを修正しました。 (bug 345) (Tatsuo Ishii)
ereportを呼び出さないように終了シグナルハンドラを修正しました。(Tatsuo Ishii)
終了シグナルハンドラに競合状態が発生する可能性がありました。
詳細は、 [pgpool-hackers:2545]を参照してください。
Doc: replicate_selectの動作に関する説明を修正しました。(Yugo Nagata)
Test: メモリリークテストのバグを修正し、新しいメモリリークテストを追加しました。(Tatsuo Ishii)
ヘルスチェック後に再試行が成功したログを記録するようになりました。 (Tatsuo Ishii)
以前は、ヘルスチェックが再試行されたログだけが記録されていましたが、再試行が成功したかどうかは明らかではありませんでした。
Doc: 「AWS設定の例」でヘルスチェックリトライの設定に関する説明を追加しました。(Tatsuo Ishii)