[pgpool-general-jp: 529] pgpool-II and pgpoolAdmin 2.2 beta1リリース

Tatsuo Ishii ishii @ sraoss.co.jp
2009年 1月 25日 (日) 21:17:11 JST


石井です.

pgpool-II および pgpoolAdmin の次期バージョン 2.2のベータテストを開始
しました.是非,テストにご協力下さい.

tar ballは以下からダウンロードできます.

http://pgfoundry.org/frs/download.php/2066/pgpool-II-2.2beta1.tar.gz
http://pgfoundry.org/frs/download.php/2065/pgpoolAdmin-2.2-beta1.tar.gz

以下,ドキュメントのリリースノートから引用します.

---------------------------------------------------------------------------
2.2 (urukiboshi) 2009/2/?
概要

このバージョンでは,SERIALデータの扱いとオンラインリカバリに改良が行な
われています.また,トランザクション分離レベルがシリアライザブルの場合
に,DBノード間でデータの一貫性がなくなる可能性がある問題,クエリのキャ
ンセルができない問題が修正されました.

新機能

    * insert_lockが有効な場合,SERIAL型を持つテーブルだけがロックされ
      るようになりました(Tatsuo).

    * 設定項目client_idle_limit_in_recoveryが追加されました. オンライ
      ンリカバリの第2ステージでクライアントがアイドルのまま居座ること
      によって, オンラインリカバリが進行しなくなることを防ぐことがで
      きます(Tatsuo).

    * 設定項目pid_file_nameが追加されました.これは,pgpool-IIのpidファ
      イルを指定します. これにより,logdirは使用されなくなりました
      (Tatsuo).

    * DECLARE, FETCH, CLOSEで負荷分散されるようになりました(Tatsuo). 

互換性

    * フェイルオーバ時に必ずpgpoolの子プロセスを再起動するようにしまし
      た. こうしないと,ネットワークケーブル抜けなどの際に, TCP/IPの
      レイヤで再送が行なわれ,長い時間そのままになってしまうことが あ
      るからです(Tatsuo).

    * 設定項目logdirは使われなくなりました.代りに,pid_file_nameを使ってください. 

バグ修正

    * pgpoolがデーモンモードで起動される際に,すべてのファイルディスク
      リプタを 閉じるようにしました.こうしないと,pgpoolAdminから起動
      された際に apacheのソケットファイルを引き継いでしまい,80番ポー
      トが 専有されてしまいます(Akio Ishida).

    * トランザクションをシリアライズできないエラーが発生したときに, 
      すべてのDBノードのトランザクションをアボートするようにしました. 
      こうしないと,DBノードの間でデータの不整合が起きることがあります
      (Tatsuo). 例を示します(Mはマスタ,Sはスレーブを示します).

      	   M:S1:BEGIN;
      	   M:S2:BEGIN;
      	   S:S1:BEGIN;
      	   S:S2:BEGIN;
      	   M:S1:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
      	   M:S2:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
      	   S:S1:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
      	   S:S2:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
      	   M:S1:UPDATE t1 SET i = i + 1;
      	   S:S1:UPDATE t1 SET i = i + 1;
      	   M:S2:UPDATE t1 SET i = i + 1; <-- blocked
      	   S:S1:COMMIT;
      	   M:S1:COMMIT;
      	   M:S2:ERROR:  could not serialize access due to concurrent update
      	   S:S2:UPDATE t1 SET i = i + 1; <-- success in UPDATE and data becomes inconsistent!
      	   

    * rawモードでMD5認証が使えるようにしました.ドキュメント上では使え
      るはずでした(Tatsuo).

    * "SET TRANSACTION ISOLATION LEVEL must be called before any
      query"の エラーが発生した場合に"kind mimatch"エラーになることを
      防ぐようにしました(Tatsuo). 以下のシナリオで問題が発生します.

      	   M:S1:BEGIN;
      	   S:S1:BEGIN;
      	   M:S1:SELECT 1; <-- only sent to MASTER
      	   M:S1:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
      	   S:S1:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
      	   M: <-- error
      	   S: <-- ok since no previous SELECT is sent. kind mismatch error occurs!
--
Tatsuo Ishii
SRA OSS, Inc. Japan


pgpool-general-jp メーリングリストの案内