[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 メーリングリストの案内