ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

PostgreSQLコミュのpgpool

  • mixiチェック
  • このエントリーをはてなブックマークに追加
石井達夫さん作成
http://www2b.biglobe.ne.jp/~caco/pgpool/

pgpoolは,PostgreSQL 専用のいわゆる「コネクションプール」サーバで, PostgreSQLクライアントとPostgreSQLサーバの間で両者の仲立ちをします. pgpoolを利用することによって,PostgreSQLサーバへの接続オーバヘッドを低減でき,システム全体のスループットを向上させることができます.

PostgreSQLのクライアントがpgpoolに接続すると,初回はPostgreSQLへの接続がpgpoolから確立されます.クライアントが終了してもPostreSQLへの接続は切断されることなく残り,次回の同じユーザ,データベースで pgpoolへの接続があったときにはこのPostgreSQLへの接続が再利用されます.

また,pgpoolには「フェイルオーバー」の機能があるので,システムのダウンタイムを最小限に押さえることができます.

更にpgpoolは「レプリケーション」も可能です.レプリケーションを使用することにより,物理的に2台のディスクにリアルタイムでハードディスクのバックアップを取ることができ,片方にディスク障害が発生しても運用を継続することができます.pgpoolのレプリケーションは同じ問い合わせを2台のサーバに送信することによって行いますので,いわゆる同期レプリケーションの一種ということになります.なお,今のところ,レプリケーションは2台のみで,3 台以上のレプリケーションはできません.

pgpoolは検索問い合わせ(SELECT)を2台のサーバに振り分ける負荷分散機能を持っています.これによって検索性能を大幅に高めることができます. とりあえずのベンチマーク結果です.一応素のPostgreSQLの2倍近い性能が出ている模様.

コメント(7)

どなたか、pgpoolを使ってる方、いらっしゃいますか?

Windows(cygwin)でも問題なく使えるんですね。

PostgreSQL 8.0 rc2 で私のノートパソコンにてJMeterを使いベンチマークをとったところ、簡単なSELECT文で、接続先のDBがlocalhostの1台の時は、直接接続でも、pgpool経由でも、700tpsでました。

cygwinが原因による速度低下はないようです。

マスターかスレーブに障害が発生し、マシンごと入れ替えたときは、やはり、一度サービスを止めてから、rsyncしないといけないんですかねぇ...

ダウンタイム0にできないのかなぁ。
pgpool、お客さんとこに導入してます。
ベンチマークなんかはとってませんが、体感速度でもかなり向上しますね。

で、pgpoolはあくまでもコネクションプーリングが主ですから、レプリケーションはオマケ的なものと思ってます。石井さんもシンプルなままにする方向で開発されてるようですし。

ダウンタイム0が必要なシステムではPGClusterとか、非同期でよければSlony-Iを使うべきなんでしょうね。

※Slonyはムツカシくてちゃんと理解できてませんがw。
> 一度サービスを止めてから、rsyncしないといけないんですかねぇ

接続をすべて落としてからCHECKPOINTを実行すればコピー出来ますよ。CHECKPOINT完了してからコピー完了までいっさい更新が入らないのが必須条件です。

> ダウンタイム0にできないのかなぁ。

無理ですねぇ。というか、こんな簡単な仕組み+αでダウンタイム0に出来るなら商用DBがとっくにやってますって。非同期でクラッシュ時にトランザクション消失する覚悟があるならslony-Iと組み合わせるのも手ですけど。
>> ダウンタイム0にできないのかなぁ。
> 無理ですねぇ。

そりゃ、そうかぁ

設定も簡単ですし、いじろうと思えば、いじれる量のソースコードですし、pgpoolいいですね。

データ量、アクセス量が少ないDBの場合は使えますね!
データ量やアクセス量が少ないDBではpgpoolも必要ないような気が...
> 接続をすべて落としてからCHECKPOINTを実行すればコピー出> 来ますよ。CHECKPOINT完了してからコピー完了までいっさい> 更新が入らないのが必須条件です。
もう1つ,CHECKPOINTが必要とされるくらい時間が経っているか,トランザクションが実行されている必要があります.そうでなければ,CHECKPOINTをかけても実行されません.
すみません,別のものと混同してました.
xlog.cを読み直して確認しました.
CheckPointで問題ないです.

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

PostgreSQL 更新情報

PostgreSQLのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。