 |

|
予習!復習!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の開発と普及活動を行っている。
|
|
|
|