[pgpool-general-jp: 544] Re: pgpool-II and pgpoolAdmin 2.2 beta1リリース
Tatsuo Ishii
ishii @ sraoss.co.jp
2009年 2月 8日 (日) 00:22:53 JST
石井です.
pgpool-II 2.2 beta2をリリースしました.以下からダウンロードできます.
http://pgfoundry.org/frs/download.php/2082/pgpool-II-2.2beta2.tar.gz
beta1からの変更点は以下です.
- オンラインリカバリの後クライアントからの接続を受け付けるタイミングが
早すぎるバグを修正しました。このバグにより、ノードデータの貫性が保た
れない可能性がありました.
- SELECT, INSERT, UPDATE, DELETE以外のコマンドでも必要ならばトランザク
ションブロックの内側で実行するようにしました。これにより、エラー発生
の際にロールバックしてノードの整合性を保つことができます.
--
Tatsuo Ishii
SRA OSS, Inc. Japan
> 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 mailing list
> pgpool-general-jp @ sraoss.jp
> http://www.sraoss.jp/mailman/listinfo/pgpool-general-jp
pgpool-general-jp メーリングリストの案内