[pgpool-general-jp: 1258] pgpoolから発行されるSQLの挙動について

貞永佳市 ksadanaga @ itfor.co.jp
2014年 1月 29日 (水) 17:24:56 JST


お世話になります、貞永です。

昨年末から問い合わせさせていただているpgpoolから発行される
SELECT count(*) FROM pg_catalog.pg_class AS c WHERE c.oid =
pgpool_regclass('ユーザーテーブル') AND c.relpersistence = 'u'
についてですが、いろいろ検証している中で気になる挙動が有りましたので、ご報告させていただきます。

構成は、
pgpool-ii:: 3.3.1、マスタースレーブモード、ロードバランスモード、コネクションプールモードを使用
PostgreSQL:9.3.0、ストリーミングレプリケーションでマスタ1台、スレーブ1台
それぞれ別サーバーで、OSはCentOS6.4(64bit)

pgbenchを使った負荷がけ(-S、-M extended)を行って確認しました。

DB1号機(マスター)側で負荷がけ中のpg_stat_activityを見ると
SELECT count(*) FROM pg_catalog.pg_class AS c WHERE c.oid =
pgpool_regclass('pgbench_accounts') AND c.relpersistence = 'u'
がずーっとactiveのままで残っていました。
pgbenchが終了すると上記にSQLもきれいに消えています。

psqlで\dxでpgpool_regclassが入っていることも確認しています。

また、1号機をマスターからスレーブに切替を行った場合でも、スレーブの1号機にのみ同様の現象が発生します。

以前、石井様からはこのSQLがアプリケーションのSQL発行前に実行され、それが終わらないとアプリのSQLが実行されないとおしえていただいたのですが、今回の現象において、これが起因してアプリケーションが遅くなっているようには見えませんでした。
もともと、実際にシステム上に常に上記のSQLがLogTransactionとなってしまっているため、別途検証環境で検証を行い再現ができました。
参考までに、検証環境での負荷がけ時のログを添付します。

この挙動は、実害がないよう見えていますが、不具合ではないでしょうか?
もし不具合であれば解消の検討もしていただけるとありがたいです。

調査、確認の程よろしくお願いします。







--
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://www.sraoss.jp/pipermail/pgpool-general-jp/attachments/20140129/32004599/attachment-0001.html>
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: test_reg15.log
型:         application/octet-stream
サイズ:     62782 バイト
説明:       無し
URL:        <http://www.sraoss.jp/pipermail/pgpool-general-jp/attachments/20140129/32004599/attachment-0001.obj>


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