TOPサーバ構築・運用> PostgresForestのテーブル
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データ 長妻 賢
著者プロフィール
株式会社NTTデータ  長妻 賢
基盤システム事業本部
オープンソース開発センタ 技術開発担当
PostgreSQLを用いた並列分散データベースの研究開発に従事。その後PostgreSQLを使った非常に大規模なシステムの検証などを行う。2006年より、現在のPostgresForest開発チームに加わり、PostgresForestの開発と普及活動を行っている。


INDEX
第1回:可用性と拡張性を備えたデータベースPostgresForest
  コストパフォーマンスに優れたPostgreSQL
  PostgresForestの全体構成
PostgresForestのテーブル
  可用性を高める2つの機能