皆様、こんにちは。
Discourse を利用する際、pgbouncer ではなく pgpool II をご使用になった経験がある方はいらっしゃいますか?もしいらっしゃる場合、現時点での感想をお聞かせください。
また、チームとして将来的に pgpool II の導入を検討されることはありますか?もしそうであれば、その理由も教えていただけますでしょうか。
よろしくお願いいたします。
Ismael
皆様、こんにちは。
Discourse を利用する際、pgbouncer ではなく pgpool II をご使用になった経験がある方はいらっしゃいますか?もしいらっしゃる場合、現時点での感想をお聞かせください。
また、チームとして将来的に pgpool II の導入を検討されることはありますか?もしそうであれば、その理由も教えていただけますでしょうか。
よろしくお願いいたします。
Ismael
pgpool II にはトランザクションプーリング機能がありません。トランザクションプーリングがなければ、大規模なホスティング環境での価値は極めて限定的であり、むしろ複雑さが増すだけです。
標準的な「セルフホスト型」の Discourse では、アクティブな接続数を 30〜60 に押し上げるだけでも苦労するでしょう。PostgreSQL はその程度の負荷では問題ありません。接続プーラーを導入してセットアップを複雑にする必要はありません。
サム、どうもありがとう。確かに、おっしゃる通り接続数が少ない場合には意味をなさないかもしれません。また、トランザクションプーリングを考慮すると、この場合の勝者は一つに絞られます。
しかし、私の知る限り、pgbouncer は HA(高可用性)を提供していない一方、pgpool II は提供しています。pgbouncer を pgpool の「前面」に配置して、その機能を実現することはどうでしょうか?Discourse に適した HA アプローチについての推奨はありますか?
Discourse はグローバル設定により、すぐに HA を利用できます。
参照: GitHub - discourse/rails_failover · GitHub
また、グローバル設定については以下を参照してください: discourse/config/discourse_defaults.conf at main · discourse/discourse · GitHub
pgbouncer を 2 台構成にし、高可用性かつ膨大な接続数が必要なモードで設定します。