[pgsql-jp: 33749] Re: 北海道支部勉強会「 pgpool 」

mitani mitani @ sraw.co.jp
2004年 7月 23日 (金) 13:25:40 JST


三谷@広島です.

> 複数のpgpoolから、一つのPostgreSQLへアクセスすると
> PostgreSQLのコネクションが不足してしまいます。
> PostgreSQLのコネクション数を、増やしても、性能は下がりますよねえ。
> かといってpgpoolのコネクション数を減らすのも、なんだかなあですし。
> 
> また、複数のDBクラスタのある、PostgrSQLサーバに対して
> pgpool経由でアクセスすると、pgpoolは、DBクラスタ単位に
> コネクション確保するので、やはり、コネクション数が不足してしまいます。

「コネクション数を増やしたい」ということは「アクセス負荷を分散したい」と
いうことだと思います.
DBへのコネクション数を増やすには2つの方法が考えられます.
1つ目はDBクラスタそのものを増やす方法.
2つ目は複数のセッションを1本にまとめてしまう方法です.

1つ目の方法はマルチマスタ方式のレプリケーションが必要です.
マスタスレーブ方式のレプリケーションではできませんので,
pgpoolではできないと思います.
2つ目の方法はトランザクションやSET,一時ファイルなどセッションに依存する
クエリーを使わないのであれば,実装は可能です.
(pgreplicateの初期バージョンはそういう実装でした)
ただし,LOCKが発生すると完全に止まりますので,参照系のみ利用可能になりま
す(^^);;

pgpoolで参照系の負荷分散を行う方法として,こんな配置はどうでしょうか
(pgpoolの多段活用って可能かのかな?)

                 +-[DB]-[P]-[W(B)]
                 |
           +-[P]-+
           |     |
           |     +-[DB]-[P]-[W(B)]
[W(A)]-[P]-+
           |     +-[DB]-[P]-[W(B)]
           |     |
           +-[P]-+
                 |
                 +-[DB]-[P]-[W(B)]

[W(A)]:データ更新用のWebサーバ
[P]:pgpool
[DB]:PostgreSQLサーバ
[W(B)]:データ参照用のWebサーバ


=============================
三谷 篤<mitani @ sraw.co.jp>
=============================





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