[pgpool-general-jp: 1646] Re: pgpool-IIの処理性能について

egashira.yusuke @ fujitsu.com egashira.yusuke @ fujitsu.com
2020年 9月 29日 (火) 10:19:34 JST


石井様

江頭です。
お返事ありがとうございます。

> > 恐れ入りますが、この挙動が意図されたものかどうか、
> > 意図されたものであれば回避する方法を教えていただければ幸いです。
> 
> はい、意図通りです。理由はご指摘のcommit logに書いているとおりですが、
> ----------------------------------------------------------------------
>     - When 'S' (sync) message is received from frontend, forward it to
>       backends and wait till "ready for query" message is received from
>       the backends. This ensures Pgpool-II to receive the read for query
>       message and goes into the proper sync point.
> ----------------------------------------------------------------------
> Syncがフロントエンドから来たら、それをすべてのバックエンドに送信し、
> Ready for queryが来るのを待ち受けます。すべてのバックエンドに送信して
> いる理由は、現在のPgpool-IIの実装では、Syncがフロントエンドから来た時
> 点であるバックエンドとはやり取りが過去発生していなくて、Syncを送らなく
> てもよいかどうか判断できる情報を持ち合わせていないからです。

Syncがスタンバイにも送られることについて、意図された通りの仕様であると理解しました。


> もちろん、load_blance_modeがoffならprimary以外にはSyncを送らなくても良
> い、といったadhocな対応はできるかもしれませんが、もうちょっときれいに
> できないものかと思っています。
> 
> # それ以外に、たとえばbackend_weightが0のノードにはSyncを送らなくても
> # 良いとか、database_redirect_preference_listなどの設定によってはある
> # ノードにデータを送らないで済むケースがあるので。
> 
> 本質的には、バックエンド毎に、前回のSyncから今回までの間にデータのやり
> 取りが合ったかどうかを記憶しておいて、Syncを送る時に今までデータのやり
> 取りがなかったバックエンドには送信しない、というふうにするのが良いので
> はないか、と考えています。
> 
> > # master_slave_sub_mode が stream モードの場合のみ両方に飛ぶようなので、
> > # slony モードを指定すれば回避可能とも思いましたが、
> > # ストリーミングレプリケーションを使っている以上、他の処理に影響しそうなので不適切と考えています。
> 
> はい、不適切だと思います。

適切な回避の手段もなさそうですね。
仮に今後改善するとしても、少々大きな変更が必要となりそうということも理解しました。
ありがとうございます。


以上、よろしくお願いします。

-------------------------------------------------
富士通(株)
データマネジメント事業部 第二開発部
江頭 勇佑 (Egashira Yusuke)
egashira.yusuke @ jp.fujitsu.com
TEL 外線:078-414-8597 内線:72-6069-4033
-------------------------------------------------




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