[pgpool-general-jp: 766] Re: マスター/スレーブモードにおける parse の実行サーバ

Tatsuo Ishii ishii @ sraoss.co.jp
2010年 4月 22日 (木) 13:45:57 JST


石井です。

はい、ご指摘の通りです。

pgpoool-II 2.3以降でも、最終的にはpgpool-II 2.2.6のように、マスター/ス
レーブモードですべてではなく、必要なノードのみにparseその他を発行する
ようにしたいと思っています。しかし、2.2.6の実装がかなりアドホックで、
このままではデッドエンドになってしまうので、2.4以降では、このあたりの
仕組みをリファクタしたいと考えています。こういわけで、2.2.6の修正が2.3
系に反映されていません。
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese: http://www.sraoss.co.jp

> NTT OSSセンタ 藤井です。
> 
> v2.2.6 のリリースノートに以下の修正があります。
> 
> -----------
> マスター/スレーブモードにおいて、拡張プロトコルのParseをマスター上でのみ
> 実行するようにしました。以前はすべてのノードでParseが実行されていたのですが、
> これだと不必要なロックがスレーブでも取られてしまいます(Tatsuo)
> -----------
> 
> しかし、pgpool-II の HEAD をコンパイルしてマスター/スレーブモードで
> 使用したところ、parse がマスターとスレーブの両方で実行されてしまいました。
> v2.2.6 のときの修正は、HEAD には含まれていないとのことでしょうか?
> 勘違い等がありましたら、ご指摘ください。
> 
> JDBC 経由で PreparedStatement を使ってクエリを送信したときの、マスターと
> スレーブの PostgreSQL のログを参考として以下にお知らせします。parse と
> bind は両サーバで実行され、execute だけ片方で実行されているようです。
> 
> act [4565] DEBUG:  parse S_1: SELECT * FROM t WHERE i = $1
> sby [4566] DEBUG:  parse S_1: SELECT * FROM t WHERE i = $1
> sby [4566] DEBUG:  bind <unnamed> to S_1
> act [4565] DEBUG:  bind <unnamed> to S_1
> act [4565] LOG:  execute S_1: SELECT * FROM t WHERE i = $1
> act [4565] DETAIL:  parameters: $1 = '2'
> 
> 以上、よろしくお願いいたします。
> 
> -- 
> Fujii Masao
> NIPPON TELEGRAPH AND TELEPHONE CORPORATION
> NTT Open Source Software Center
> _______________________________________________
> pgpool-general-jp mailing list
> pgpool-general-jp @ sraoss.jp
> http://www.sraoss.jp/mailman/listinfo/pgpool-general-jp


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