TOPサーバ構築・運用> レプリケーションテーブルに対するSQL処理
PostgresForest
予習!復習!PostgresForest!

第2回:解体、PostgresForest!

著者:NTTデータ  長妻 賢   2007/7/26
前のページ  1  2  3   4  次のページ
レプリケーションテーブルに対するSQL処理

   もう少し具体的に、典型的なSQLを実行したときのJDBCドライバの動きをみていきましょう。

   SQLの書き換えや振り分けの処理は、対象となるテーブルの構成がレプリケーションなのか、それともパーティションなのかによって大きく異なります。まずはレプリケーションテーブルでの処理についてみていきましょう。

レプリケーションテーブルを更新する場合は?

   「第1回:可用性と拡張性を備えたデータベースPostgresForest」でも簡単に触れたとおり、レプリケーションテーブルはすべてのPostgreSQLサーバ上でテーブルの内容を同一に保つ構成になっているテーブルです。

   このテーブルを更新する場合、すべてのPostgreSQLサーバ上のテーブル内容を同時に、かつ同じ内容で更新する必要があります。

レプリケーションテーブルを更新する場合の処理
図3:レプリケーションテーブルを更新する場合の処理

   レプリケーションテーブルへの更新SQLを受け取ると、すべてのPostgreSQLサーバに一斉にそのSQLを引き渡します。この時SQLの内容は変更しません。ユーザアプリケーションから受け取ったそのままのSQLを渡します。

   これによって、すべてのPostgreSQLサーバにおいて同時に同じ更新が実施され、テーブルの内容が同一に保たれることになります。


レプリケーションテーブルを参照する場合は?

   すべてのPostgreSQLサーバにおいてテーブルの内容が等しく保たれているため、参照SQLに対する処理は非常に簡単です。

レプリケーションテーブルを参照する場合の処理
図4:レプリケーションテーブルを参照する場合の処理

   どのPostgreSQLサーバで検索を実行しても結果は同じなので、1つだけPostgreSQLサーバを選択してSQLを渡します。これによって1つのPostgreSQLサーバのみで動いている環境に比べ、1台のサーバあたりの負荷を下げることが可能になります。

前のページ  1  2  3   4  次のページ


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


INDEX
第2回:解体、PostgresForest!
  PostgresForestの動作を決めるグローバルシステムカタログ
  PostgresForestはどのように動くのか
レプリケーションテーブルに対するSQL処理
  パーティションテーブルに対するSQL処理