[pgpool-general-jp: 1366] Re: エラー時に無応答のケースについて

近藤 skond66 @ gmail.com
2015年 3月 26日 (木) 23:07:12 JST


お世話になっております。調査は難航中なのでしょうか?
レプリケーションモードかつロードバランスの使用者は極めて少ないかもしれませんが、一応、こちらのとった対策を投稿しておきます。

この不具合は、これが起因となって、高負荷時や、開発時などSQLエラーが混じった状況で、クライアントへの応答がフリーズし、バックエンドへの接続が
idle in transaction のまま残り続け、システムの安定稼働を阻害します。

こちらは以下の2点の修正をソースに加えることで、過去の2.2系統と同様の動作かつ安定稼働が可能となっております。

1.明示的なトランザクション内の select を、全ノードに送付するように変更
2.トランザクション内でのselect
エラー発生時、1の変更により全てのノードに同じselectが送られているため、他のノードへエラーを発生させる処理は不要。バイパスするように変更。


当初、replicate_select をONにして新バージョンに対応しようとしましたが、以下の2点で断念しました。

1.psql で、 \d  がエラーになりがちで使いづらい。(\d も常に両方のノードに送られてしまい、oid が異なっているとエラーとなるため。)

2.常に select処理が両方のノードに送られるため、パフォーマンスが半分になってしまう。


以上
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
URL: <http://www.sraoss.jp/pipermail/pgpool-general-jp/attachments/20150326/6d48f147/attachment-0001.html>


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