PostgreSQL多機能ミドルウェア
pgpool-II 最新活用方法

2/12/2013SRA OSS, Inc. 日本支社
技術開発部 安齋 希美

pgpool-IIとは PostgreSQL専用のクラスタ管理ツールのひとつ オープンソースソフトウェア（BSDライセンス）
 pgpool Global Development Groupが開発

 多彩な機能

同期レプリケーション、ロードバランス、自動フェイルオーバー、コネクションプーリングなど

 他のレプリケーションツールとの連携
 Streaming Replication, Slony-I

 Webベースのpgpool-II管理ツール
pgpoolAdmin

Copyright © 2013 SRA OSS, Inc. Japan All rights reserved.

pgpool-II の主要な機能
 レプリケーション利用時

ロードバランス（負荷分散）

pgpool-IIに対して検索クエリを実行すると、バックエンドノードに自動で振り分ける。振り分けるバランス（ウェイト）を指定できる。

自動フェイルオーバー

プライマリのpgpool-IIが停止してしまったのを自動検知（ヘルスチェック）し、新しいプライマリノードを自動で設定する。



手動で切り替えることもできる（スイッチオーバ）。

オンラインリカバリ

停止してしまったノードを、pgpool-IIおよびシステムを止めることなく復活させることができる。

 コネクションプーリング
PostgreSQLへの接続を再利用できる。

PostgreSQLは最大接続数以上の接続がくると受付NGになるが、pgpool-IIは接続を待たせることができる。
Copyright © 2013 SRA OSS, Inc. Japan All rights reserved.

選択できるレプリケーション方式
 レプリケーション方式は選択可能
 pgpool-IIの同期レプリケーション機能
 他のレプリケーションツールを利用 Streaming Replication, Slony-I, etc.

 レプリケーション方式の比較
pgpool-II
同期レプリ
ケーション

Streaming
Replication

Slony-I

クエリ制約

△

◎△

レプリケーション遅延◎○△

レプリケーション負荷△◎○

ロードバランス◎○○

Copyright © 2013 SRA OSS, Inc. Japan All rights reserved.

導入事例「JTB旅カード」Webサイト
ApacheApacheWeb

コンテンツ
TomcatAP

pgpool-II

ApacheApache

会員管理
JBOSS
pgpool-II

DB
PostgreSQL

PostgreSQL

PostgreSQL

PostgreSQL

・概要
・カード会員が利用するポータルサイト・ポイント管理を行なう・システム構成・Webサーバ、APサーバ、DBサーバの3層構造
・APサーバとDBサーバはコンテンツ用と会員管理用で２つに分かれている
・pgpool-IIの同期レプリケーションやロードバランス、自動フェイルオーバー機能などを使用し、可用性と性能を向上

Copyright © 2013 SRA OSS, Inc. Japan All rights reserved.

最近追加された機能
 最新メジャーバージョン
 Vesion 3.2（2012/8 リリース）

 新機能
 オンメモリクエリキャッシュ機能
 SELECT の結果をメモリにキャッシュして高速化 watchdog機能
 pgpool-II の HA（High Availability）構成

Copyright © 2013 SRA OSS, Inc. Japan All rights reserved.

オンメモリクエリキャッシュ

Copyright © 2013 SRA OSS, Inc. Japan All rights reserved.

pgpool-IIのクエリキャッシュ
SELECTが実行されたときテーブルが更新されたとき•結果がキャッシュされていたら即座にそれを返す（速い！）•キャッシュされていなかったら、SELECT実行後に結果をキャッシュに登録する•当該テーブルのキャッシュをすべて削除する•DROP DATABASE、DROB TABLEが実行された
ときも同様

キャッシュストレージとして、共有メモリ or memcached を選択できる
Copyright © 2013 SRA OSS, Inc. Japan All rights reserved.

クエリキャッシュの効果
クエリキャッシュ(共有メモリ)
クエリキャッシュ(memcached)
クエリキャッシュなしpgpool
pgpool なし

共有メモリでのクエリキャッシュ

memcachedでのクエリキャッシュ

クエリキャッシュの効果

pgpool-II

素のPostgreSQL
Copyright © 2013 SRA OSS, Inc. Japan All rights reserved.

負荷分散の効果watchdog

Copyright © 2013 SRA OSS, Inc. Japan All rights reserved.

pgpool-II の watchdog 機能
 pgpool-II 組込みの HA 機能
 ほかソフトウェアと連携するより構築が簡単

 Multi-Master 構成もサポート

Copyright © 2013 SRA OSS, Inc. Japan All rights reserved.

Active-Standby構成 w/watchdog
APサーバ
上位サーバ
監視 (ping)
watchdogプロセス
自己監視 (SELECT 1)

上位サーバ

仮想 IP

相互監視(SELECT 1)

pgpoolプロセス

監視 (ping)
watchdogプロセス
自己監視 (SELECT 1)
pgpoolプロセス

PostgreSQLCopyright © 2013 SRA
OSS, Inc. Japan All rights reserved.
レプリケーションStandbyサーバのActiveへの昇格
APサーバ
上位サーバ
監視 (ping)

ifconfig
down

watchdogプロセス
自己監視 (SELECT 1)

仮想 IP

上位サーバ
ifconfigup

相互監視(SELECT 1)

pgpoolプロセス

Active サーバ停止

監視 (ping)

watchdogプロセス
自己監視 (SELECT 1)
pgpoolプロセス

PostgreSQL

仮想IPを切り替え
サービス継続Copyright © 2013 SRA
OSS, Inc. Japan All rights reserved.
レプリケーション

Multi-Master構成 w/watchdog
APサーバ
上位サーバ

上位サーバ

監視 (ping)

監視 (ping)
watchdogプロセス

watchdogプロセス

相互監視
自己監視 (SELECT 1)
自己監視 (SELECT 1)(SELECTdetach1)
detachpgpoolプロセス

backend1

backend1pgpoolプロセス

伝搬
PostgreSQL
detachCopyright © 2013 SRAOSS, Inc. Japan All rights reserved.
レプリケーション pgpool-IIの特徴

まとめ レプリケーション方式を選択できる Streaming Replication と連携した非同期レプリケーション or 同期レプリケーション
 レプリケーション遅延とクエリの制約を考慮して最適な選択をすることが可能

 多彩な機能を組み合わせて使用できる 可用性面：同期レプリケーション、自動フェイルオーバー、オンラインリカバリなど

 性能面：

ロードバランス、コネクションプーリングなど

 最新版（Version 3.2）での新機能
 オンメモリクエリキャッシュ機能でのSELECT高速化
 watchdog機能でのpgpool-IIのHA構成
Copyright © 2013 SRA OSS, Inc. Japan All rights reserved.

参考URL pgpool-II のオフィシャルサイト http://pgpool.net/

 pgpool-II のダウンロード
 http://pgpool.net/mediawiki/index.php/Downloads

 Twitter@pgpool2

Copyright © 2013 SRA OSS, Inc. Japan All rights reserved.