[pgpool-general-jp: 1379] Re: ドキュメントバグ? Streaming Replicationでのクエリ振り分けについて
Tatsuo Ishii
ishii @ sraoss.co.jp
2015年 8月 4日 (火) 17:48:59 JST
上原様
お世話になっています。SRA OSS石井です。
> 上原と申します。
> お世話になっております。
>
> pgpool-II 3.4.2 でロードバランシングの対象となるSQLについて確認して
> いたところ、マニュアルの記述に誤りと思われる箇所がありました。
> ご確認いただけないでしょうか。
>
> ---------
> ○Streaming Replicationでのクエリ振り分け
> ・Primary/Standbyどちらにも送ることのできる問い合わせ。
> - DECLARE, FETCH, CLOSE
> ---------
> (pgpool-II マニュアルから一部抜粋)
>
> 上記のように記載されているのですが、確認したところカーソル系のSQLは
> ロードバランシングの対象とはなっておらず、全てPrimaryに向けられて
> いるようです。
>
> src/context/pool_query_context.c
> send_to_where()
> -------
> 1213 /*
> 1214 * Other statements are sent to primary
> 1215 */
> 1216 return POOL_PRIMARY;
> -------
> ここで、DeclareCursorStmtはPOOL_PRIMARYに落ちているかと思います。
>
>
> # 調べた後で気づきましたが、
> 2.2.6 のリリースノートにDECLAREをロードバランシングの対象から外した
> という記述がありましたので、おそらくその時期から残っていたのかと思います。
仰るとおりで、マニュアルの記述が更新されていないようです。修正いたします。
ご指摘ありがとうございました。
ところで2.2.6のコミットログ(ed5a6338cc83fc00ffdac89025eb7a59d6024d4b)を
見直してみると、"Fix is_select_query() not to allow cursor statements.
Close() should not allowed since hold cursor + update may cause data
inconsistency." とあるのですが、正直自分がコミットしたにも関わらず自分
でもなぜこのように考えたのか覚えていません:-)
うーん、思い出せるかどうか頑張ってみます。
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese:http://www.sraoss.co.jp
pgpool-general-jp メーリングリストの案内