メイン
   Postgres Plus FAQ
     PgBouncer とは何ですか。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
管理者
投稿日時: 2012-5-24 9:27
PgBouncer とは何ですか。
PgBouncer は、軽量なコネクションプーラーです。通常、クライアントからデータベースに対して大量の接続が発生すると、接続を確立する為の時間のコストや、接続を管理する為のコンピュータリソースが多く必要となります。このようなケースにおいて PgBouncer を使用すると、これらのコストを劇的に減少させる事ができます。

PgBouncer はコネクションプールと呼ばれるデータベース接続のキャッシュを利用する事で、クライアント・サーバ間の接続に必要なコストを抑えます。PgBouncer に接続しているアプリケーションは、あたかもデータベースに直接接続しているように透過的に見えます。実際は、PgBouncer がアプリケーションから受けたデータベースへの接続要求を制御して、データベースに対する透過的な接続を実現しています。

PgBouncer は、3つのタイプのコネクションプーリング方式をサポートしています。

・Session pooling (デフォルトのモード)
クライアントから接続が生じた時に、1 つのサーバコネクションがクライアントに割り当てられます。クライアントが接続している間は接続が持続し、クライアントから接続が終了すると、サーバコネクションはプールに戻されます。レガシーなアプリケーションには、この方式が最適です。

・Transaction pooling
1 つのトランザクションが発生している間のみ、サーバコネクションがクライアントに割り当てられます。PgBouncer がトランザクションの終了を検知した時にサーバコネクションはプールに戻されます。このモードはいくつかの PostgreSQL の機能をサポートしていない為、アプリケーション側を予め考慮して設計しておく必要があります。Transaction pooling がサポートする機能の詳細については、下記 URL にある "Feature matrix for pooling modes" 項目の情報を参照ください。

PgBouncer
http://wiki.postgresql.org/wiki/PgBouncer

・Statement pooling
最も積極的にプーリングを使用する方法です。マルチステートメントのトランザクションには使えません。したがって、クライアントは autocommit モードの使用を強いられます。これは主に PL/Proxy と連携して使用する事が目的とされています。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

 
ログイン
ユーザー名:

パスワード:



パスワード要求 | 新規登録

検索
メインメニュー
 


Copyright(C) SIOS Technology, Inc. All Rights Reserved