PostgreSQLによるクラスタ構成の可能性

SRA OSS, Inc.日本支社
取締役支社長石井 達夫

SRA OSS, Inc.のご紹介●

PostgreSQLを中心とした、OSSへの様々なサービスを提供●

サポートサービス、コンサルティング●

パッケージ製品●●●PowerGres, libTextConv, Sylpheed Pro

教育サービス●

トレーニング●

技術者認定制度(PostgreSQL CE)

Http://www.sraoss.co.jp●

私自身は経営の立場とエンジニアの二足のわらじ●

Twitter: @tatsuo_ishii
Copyright(c)2010 SRA OSS, Inc. Japan2

PostgreSQLとは●●●10年以上の歴史を持ち機能、信頼性、安定性に定評のあるデータベース
CPUスケーラビリティにも定評(12 CPU程度までス
ケール)
TB級の大規模データベースの事例もある

Copyright(c)2010 SRA OSS, Inc. Japan3

急速に成長を続けるPostgreSQLソースコード行数
1200000

マルチプロセッサ
最適化

1000000

再帰SQL
Window関数

組み込み
レプリケー
ション

WALログ
TOAST

800000PL/pgSQL

600000HOT
全文検索
autovacuum

トリガ
400000Concurrent
Vacuum200000

副問い合わせマルチバイト

0

7.4

8.0

Copyright(c)2010 SRA OSS, Inc. Japan

8.1

8.2

8.3

8.4

9.0

2010

7.3

2009

7.2

2008

7.1

2006

1999

1998

1997

7.0

2005

6.5

2003

6.4

2002

6.3

2001

6.2

行ロック
MVCC

2000

6.1

Windows対応

4

PostgreSQLの機能

アプリケーション
可搬性の向上レプリケーション

標準SQLの利用

性能向上

可用性向上
ディザスタ
リカバリ
負荷分散

コストベース
オプティマイザ
ストアド
プロシジャ
トリガ
行ロック
ユーザ定義
MVCC
データ型
XML
全文検索

データ保全
運用性向上
付加機能

パーティショニング
Copyright(c)2010 SRA OSS, Inc. Japan

オンラインバックアップ
バイナリ/SQL
5

クラスタ構成で注目される
OSS DBの利用●●

コスト節約効果が顕著
製品グレードによってクラスタ機能が使えないな
どの心配がない●

必要な分だけ有償保守を利用可能●

ライセンス管理の煩わしさから解放●

ビジネスの成長に合わせて手軽にクラスタ規模を拡大可能
Copyright(c)2010 SRA OSS, Inc. Japan

6

PostgreSQL 9.0以前に利用可能だった
代表的なレプリケーション●

Slony-I●●●

トリガを使って更新データを転送してレプリケーション(トリガベースレプリケーション)
非同期レプリケーション/更新性能の劣化が少ない

Pgpool-II●●

SQL文をコピーして転送してレプリケーション(クエリベースレプリケーション)
同期レプリケーション/更新性能の劣化が多い

Copyright(c)2010 SRA OSS, Inc. Japan

7

Slony-Iによるレプリケーション
PostgreSQL
マスタ
更新/検索
問合わせ
更新行転送

DBクライアント
検索問合わせCopyright(c)2010 SRA OSS, Inc. Japan

PostgreSQL
スレーブ

8pgpool-IIによるレプリケーション
PostgreSQL

更新問合わせ問合わせ

DBクライアント

検索問い合わせはどちらかに転送
pgpool-II

PostgreSQL
更新問合わせCopyright(c)2010 SRA OSS, Inc. Japan

9

Slony-Iとpgpool-IIの組み合わせ
pgpool-IIでクエリ切り分け、死活監視負荷分散を実施

PostgreSQL

更新/検索
問合わせ
問合わせ

DBクライアント

更新行の転送pgpool-II

PostgreSQL
検索問合わせCopyright(c)2010 SRA OSS, Inc. Japan10

大規模クラスタシステム事例
●
●

●

●

オープンドア様事例
国内最大級規模の携帯電話向けSNS/ゲームサイト
月間4億PV，トランザク
ションの2割が更新系
pgpool-II + Slony-Iで20台以上のPostgreSQLを管理．スケールアウトする大規模システムを構築
http://members.techtarget.itmedia.co.jp/tt/members/0802/28/news01.html
ITMedia techTarget記事より引用
Copyright(c)2010 SRA OSS, Inc. Japan

11

Slony-Iによるレプリケーションの問題点
●

運用が煩雑

●

レプリケーションできないデータがある●

レプリケーションの遅延が多い

Copyright(c)2010 SRA OSS, Inc. Japan

12

PostgreSQL 9.0のストリーミング
レプリケーション
●

運用が容易

●

すべてのデータをレプリケーション可能●

レプリケーションの遅延が少ない●

レプリケーションが本体に組み込みなので導入しやすい

Copyright(c)2010 SRA OSS, Inc. Japan13

ストリーミングレプリケーションの仕組み
プライマリサーバ

スタンバイサーバ

検索
更新・コミット
トランザクション
ログ

ログ送信プロセス

ロールフォワード
トランザクション
ログ

0.2秒毎に連続的に(ストリーミング)
ネットワーク転送

ログ受信プロセス

Copyright(c)2010 SRA OSS, Inc. Japan

14

Streaming Replication+
Hot Standbyとpgpool-IIの組み合わせ
pgpool-IIでクエリ切り分け、死活監視負荷分散を実施

PostgreSQL

更新/検索
問合わせ
トランザクション
ログの転送

問合わせ

DBクライアント

pgpool-II

PostgreSQL
検索問合わせCopyright(c)2010 SRA OSS, Inc. Japan15

PostgreSQLによるクラスタリングの現在の到達点●

可用性は充分確保できている●

検索性能はスケールアウト可能●

更新性能の向上は対価が必要●●

非同期レプリケーション●

データ分割戦略

妥協の必要がない更新性能の向上
は、PostgreSQLに限らずすべてのDBMSの課題
Copyright(c)2010 SRA OSS, Inc. Japan16

PostgreSQLにおけるレプリケーション
クラスタソリューションの今後●

ストリーミングレプリケーションの改良●●

同期レプリケーションの実装

PostgreSQL-XCプロジェクト●●

NTTが中心になって実施しているOSSプロジェクト
検索だけでなく、更新もスケールするクラスタシステム

Copyright(c)2010 SRA OSS, Inc. Japan17

Postgres-XCのアーキテクチャ

SQLの解析
グローバル
トランザクション
マネージャ

SQLの実行

コーディネータ

コーディネータ

コーディネータ

データノード

データノード

データノードCopyright(c)2010 SRA OSS, Inc. Japan18

参考URL●

PostgreSQL●●Slony-I●●

http://www.slony.info/

Pgpool-II●●

http://www.postgresql.org

http://pgfoundry.org/projects/pgpool/

Postgres-XC●

http://postgres-xc.sourceforge.net/
Copyright(c)2010 SRA OSS, Inc. Japan19

ご清聴ありがとうございました

Copyright(c)2010 SRA OSS, Inc. Japan

20