TOP
>
サーバ構築・運用
> PostgresForestのテーブル
予習!復習!PostgresForest!
第1回:可用性と拡張性を備えたデータベースPostgresForest
著者:
NTTデータ 長妻 賢
2007/7/20
前のページ
1
2
3
4
次のページ
PostgresForestのテーブル
PostgresForestを理解する上で重要なポイントの1つが、テーブルの種類です。PostgresForest上にテーブルを作る際には、テーブルの種類を選択することになります。PostgresForestで使用できるテーブルの種類には、「レプリケーションテーブル」と「パーティションテーブル」の2種類があります。ここでは2種類のテーブルがどのようなものなのかについてみていきます。
レプリケーションテーブル
レプリケーションテーブルはその名の通り、レプリカ(=コピー)を作るテーブルです。PostgresForestクラスタは、データの書き込み先として複数のPostgreSQLサーバにアクセスすると述べましたが、この複数のPostgreSQLサーバ上に同じテーブルを置き、そのテーブルの内容を完全に同じ状態とするのがレプリケーションテーブルの役割です。
図3:レプリケーションテーブル
図3の例では、3台のPostgreSQLサーバでPostgresForestクラスタを構成しており、テーブルの種類をレプリケーションとしています。レプリケーションしたテーブルの内容は、すべてのPostgreSQLサーバ間でリアルタイムで同一の状態に保たれます。
このため該当するテーブルに対する検索クエリは、どのPostgreSQLサーバ上で実行しても同じ結果を得ることができます。そこでPostgresForestは、検索クエリを複数のPostgreSQLサーバに順次振り分け、負荷分散を実現しているのです。
パーティションテーブル
パーティションテーブルは、論理的に1つのテーブルをパーティションと呼ぶ複数の物理的なテーブルに分割して配置するものです。
図4:パーティションテーブル
図4の例では、3台のPostgreSQLサーバでPostgresForestクラスタを構成しており、1つのテーブルを各PostgreSQLサーバ上に分割して配置しています。
この例では「会員情報」テーブルを会員番号の値によって分類し、それぞれのPostgreSQLサーバに配置しています。どんな条件のレコードをどのパーティションに配置するかは、ユーザが作成したパーティション関数によって自由に変更することができます。
単体のPostgreSQLでもバージョン8.1以降でパーティション機能が整備されましたが、このパーティション機能との一番の違いは、複数のサーバ間を跨って1つの論理的なテーブルを構成するというところにあります。1つの単純な検索クエリであっても複数のPostgreSQLサーバ上で並列に処理を行うことができ、レスポンスの向上・負荷分散を実現することができるのです。
前のページ
1
2
3
4
次のページ
著者プロフィール
株式会社NTTデータ 長妻 賢
基盤システム事業本部
オープンソース開発センタ 技術開発担当
PostgreSQLを用いた並列分散データベースの研究開発に従事。その後PostgreSQLを使った非常に大規模なシステムの検証などを行う。2006年より、現在のPostgresForest開発チームに加わり、PostgresForestの開発と普及活動を行っている。
INDEX
第1回:可用性と拡張性を備えたデータベースPostgresForest
コストパフォーマンスに優れたPostgreSQL
PostgresForestの全体構成
PostgresForestのテーブル
可用性を高める2つの機能