[pgpool-general-jp: 960] SELECT クエリのレプリケートについて

GOTO, Daisuke gotoh @ m-design.com
2011年 8月 1日 (月) 16:00:10 JST


後藤@MDCと申します。

3年くらい前から
postgresql 8.4.1
pgpool-II-2.2.4
の組み合わせで運用しているシステムがあります。

pgpool.conf は以下のようになっております。
(関係ありそうな所のみ抜粋)

replication_mode = true
load_balance_mode = true
replication_stop_on_mismatch = true
replicate_select = false
master_slave_mode = false
insert_lock = false
ignore_leading_white_space = true
parallel_mode = false

このシステム上で、とある特定の SELECTのクエリを実施した際に、
何故かクエリがレプリケートされてしまいます。
(それ以外のSELECTクエリはちゃんとload balanceされています)

結果、他のINSERTとタイミングがかぶると
kind mismatch among backends
が発生してしまう場合が稀にあります。

replicate_select は falseなのに
selectのクエリがレプリケートされてしまうのは何故でしょうか。
selectのクエリでもレプリケートされてしまうような条件があるのでしょうか?

また、/*insert lock*/のようにコメント等を指定することで、
明示的にクエリをレプリケートさせないようにする方法などはあるのでしょうか?

なお、SELECTのクエリは SELECT 〜 で始まっており、
文中には
case when
sum()
group by 
left join
translate()
substring()
NULLIF()
COALESCE()
to_number()
などが含まれて居ます。

以上、ご教授いただけたらと思います。

-- 
 後藤 大輔<gotoh @ m-design.com>
 株式会社エム・ディー・シー
 〒212-0012 川崎市幸区中幸町3丁目2
 Tel. 044-555-3185 Fax. 044-555-5700


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