[pgsql-jp: 35304] Re: pgpoolのreplication_stop_on_mismatch について

Tsunehisa Kazawa kazawa @ ca2.so-net.ne.jp
2005年 4月 20日 (水) 23:17:46 JST


こんばんは。加澤です。

Tatsuo Ishii wrote:
>>どうしてそのような状況が起こるのか、pgpool-2.5.2 のソースを確認してみた
>>ところ、pool_process_query.c の 2227 行目付近で、strict モードの場合でも
> 				  ~~~~562行目辺りですかね

そうでした(^^;。表示見間違えた…。


> 一瞬2.5.2の修正をバックアウトする必要があると思ったのですが,「SELECT 
> もシーケンシャルに処理されるようになってしまうため、特に count(*) 系
> や ORDER BY などを用いたいわゆる「重い」query 時の性能劣化が心配です」
> ということで,それはNGなのですね.

そうですね。たとえ strict モードにおいても、今回のようにあらかじめ
access share ロックを確保すれば安全に平行して select を実行出来る手段が
ある、というのはありがたいです。

ただそっちがデフォルトである必要はないかもしれません。strict モード時は
全て同期的に動作するのがデフォルトで、代わりに /*STRICT*/ 指示子の逆、
/*NO STRICT*/ とか /*PARALLEL*/ といった指示子があってもよいのかも。


> ところで「SELECT の前に明示的に LOCK TABLE 〜 IN ACCESS SHARE MODE す
> る」ということは,もはやreplication_strict = trueを指定する必要がない
> ような気がするのですが,今はどのようにされていますか?

strict モードでないと、master 側への lock table の返事を待たずに
secondary 側へも lock table を投げてしまい、広い意味でのロック順が保てな
くなるのではないかと思っているのですが間違ってます?


> おっしゃる通りです.READMEに書いておくべきでした.以下のように修正して
> みました.

早速の対応、どうもありがとうございました。

それではまた。

-- 
  ◇   加澤恒央 Tsunehisa KAZAWA
◇  ◇ mailto:kazawa @ ca2.so-net.ne.jphttp://www.digitune.org/



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