[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 メーリングリストの案内