- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- PostgreSQL/Pgpool-II/負荷分散 へ行く。
- 1 (2017-12-09 (土) 11:54:46)
- 2 (2017-12-10 (日) 23:22:25)
- 3 (2017-12-18 (月) 00:19:25)
- 4 (2017-12-19 (火) 00:36:41)
- 5 (2017-12-19 (火) 21:40:37)
ストリーミングレプリケーションモードを前提とする。
負荷分散 †
- マスタースレーブモードとレプリケーションモードで動作
- 有効な場合、参照クエリの負荷分散を行なう。
ただし、更新クエリはプライマリノードに送信される。
負荷分散先の決定 †
Pgpoolは、クライアントからの接続があると、すべてのバックエンドに対してまずコネクション接続を行なう。続いて、負荷分散設定(load_balance_mode
)が有効な場合、セッション初期化プロセスの中で負荷分散先を決定する。負荷分散先はセッション単位でありセッション中は変更されない。
redirect_app_names
やredirect_dbnames
パラメータでキーワードstandbyが使われた場合は、スタンバイノードの中で重みを考慮した選択が行われる。
参考
- child.c#select_load_balancing_node() - on https://git.postgresql.org/gitweb/?p=pgpool2.git
- pool_session_context.c#pool_init_session_context() - on https://git.postgresql.org/gitweb/?p=pgpool2.git
負荷分散のプロセス詳細 †
セッション初期化でロードバランスノードが決定されるが、実際には送られてきたクエリの内容によって、適切なノードにクエリを送信するようになっている。