[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.jp
◇ http://www.digitune.org/
pgsql-jp メーリングリストの案内