Pgpool-II 4.0.4 文書 | |||
---|---|---|---|
前のページ | 上に戻る | 付録 A. リリースノート | 次のページ |
リリース日: 2017-04-28
memcachedが使用されているときに発生する"show pool_cache"のセグメンテーション違反を修正しました。 (Bug 301) (Tatsuo Ishii)
いくつかのソースコードの警告を修正しました。(Muhammad Usama)
いくつかのコンパイラの警告を修正しました。(Muhammad Usama)
pool_config_vatiable.cから「定義されたが未使用の関数」という警告を削除しました。(Muhammad Usama)
古いdebug_level設定パラメーターの参照を削除しました。(Muhammad Usama)
Watchdogのソースコードのミスを修正し、いくつかのdebugメッセージを追加しました。(Muhammad Usama)
pool_hba.confファイルをリロード時に発生するエラーを修正しました。(Bug 299) (Muhammad Usama)
英語/日本語のドキュメントにpgpool_adm extensionに関する情報を追加しました。(Tatsuo Ishii)
ドキュメントを改善しました。(Tatsuo Ishii)
watchdog 使用時に Pgpool-II 間でバックエンドの状態が一致しない不具合を修正しました。 (Bug 289) (Muhammad Usama)
Watchdogによるスプリットブレインシナリオの処理を強化しました。(Muhammad Usama)
watchdogクラスタを使用しmaster/coordinatorノードの再選出が呼び出されていました。その結果、すべてのノードがウォッチドッグネットワークに再結合する必要がありました。これはwatchdogクラスタ全体の再起動と本質的に同じでした。
今回の修正では、master/coordinatorノードの候補は、次の基準で選択されるようになりました。
(1) 2つのウォッチドッグノードがクラスタマスターであると主張している場合、エスカレーションを実行したマスターノードはマスター状態を保持し、他のノードはステップダウンするように要求されます。
(2) 競合がノードのエスカレーション状況によって解決できない場合、クォーラムを保持するノードはマスター/コーディネータのままです。
(3) 両方の候補のクォーラムステータスが同じ場合、接続されたアライブノードの数が多いノードが優先されます。
(4) 最後に、上記3つでマスターノードを選出できなかった場合、古いマスター(長期間コーディネーターステータスを持つノード) はマスターのままです。
複数の並行コマンドを処理するためにwatchdog内部コマンドのメカニズムを強化しました。(Muhammad Usama)
コンパイラ時の警告を修正しました。(Tatsuo Ishii)
リグレッションの失敗を防ぐために、サポートされていないJavaメソッドを新しいJDBCドライバでコメントアウトしました。(Tatsu Ishii)
parse_before_bind()
のログメッセージを debug1 にダウングレードしました。(Tatsuo Ishii)
coverity警告を修正しました。(Muhammad Usama, Tatsuo Ishii)
[pgpool-general: 5396] pam ldapが失敗する不具合を修正しました。(Muhammad Usama)
拡張クエリモードでSQL型コマンドが使用できないことをドキュメントに追加しました。(Tatsuo Ishii)
SHOWコマンドを読み込みクエリの一つとして認識するようにしました。(Tatsuo Ishii)
ストリーミングレプリケーションモードでは、SHOWが発行されるとその後のSELECTは明示的なトランザクションでプライマリノードに送信されていました。この制限は不適切でした。また、parseコマンドがエラーを返すときに発生するハングアップを修正しました。
コミットadcb636によって引き起こされたメモリリークの問題を修正しました。(Tatsuo Ishii)
Commit adcb636では"pending message queue"を導入しました。メッセージを受信すると、情報がキューに追加され、オブジェクトのコピーが同時に作成されますが、オブジェクトを解放するのを忘れてしまいました。
今回の修正では、新しい関数pool_pending_message_free_pending_message()
を作成し、pool_pending_message_add()
、pool_pending_message_get()
およびpool_pending_message_pull_out()
の後に呼び出すように修正しました。
ストリーミングレプリケーションモードで「kind mismatch」(またはそれに関連する)エラーが修正されました。 (Bug 271) (Tatsuo Ishii)
このエラー原因はデータベースノードがPgpool-IIに送る応答の予測が誤っていたことです。以前使用した「sync map」の実装は弱く、予測に失敗することがありました。今回の修正では、送信されたすべてのメッセージをバックエンドに記録する"pending message queue"を導入しました。このキューの要素には、メッセージのタイプ(parse/bind/execute/describe/close/sync)、メッセージが送信されたデータベースノードの情報などが格納されます。これは単純なFIFOキューです。バックエンドからメッセージが到着すると、"pending message queue"の先頭を見れば、受信したメッセージの種類やデータベースノードを確実に予測できます。 メッセージを受信した後、この要素はキューから削除されます。
一連のパッチをテストしてくれたSergey Kimさんに感謝します。
詳細は Bug 271、 [pgpool-hackers: 2043] と [pgpool-hackers: 2140] をご参照下さい。
[Service] が Type=forking に設定されている場合、Pgpool-II 3.6.2 が systemd によって強制終了されていた不具合を修正しました。 (Bug 296) (Muhammad Usama)