図1●RitaDBの構成(NTTデータの資料より引用)
図1●RitaDBの構成(NTTデータの資料より引用)
[画像のクリックで拡大表示]
図2●テーブルの分散配置とSQL文の実行(NTTデータの資料より引用)
図2●テーブルの分散配置とSQL文の実行(NTTデータの資料より引用)
[画像のクリックで拡大表示]

 NTTデータと子会社のNTTデータ先端技術が,オープンソースDBMS PostgreSQLでクラスタリング機能を実現するソフトウエア「RitaDB(開発コード名)」を開発したことがITproの取材で明らかになった。検索処理の負荷分散が可能なPostgreSQLクラスタリング・ソフトウエアは多いが,RitaDBはOracle RAC(Real Application Clusters)などと同様に検索だけでなく更新性能の向上も実現する。2006年度中に実システムへの適用を目指す。

 RitaDBは,クライアントからのリクエストを受け付けて振り分ける「コーディネーター・ノード(C-Node」,SQL文を実行する「サブ・ノード(S-Node)」,トランザクションを管理する「トランザクション・ノード(T-Node)」,ログを管理する「ログ・ノード(L-Node)」で構成する。C-NodeおよびS-Nodeを複数台置くことで負荷を分散し,システムとしての性能を向上させることができる。

 1つのテーブルおよびインデックスを,複数のS-Nodeに分割して配置することが可能。これによりSQL文実行速度を向上させる。データをどのノードに配置するかを決定するハッシュ関数は,ユーザーが定義できる。また1つのテーブルおよびインデックスを,複数のS-Nodeにミラーリングする構成もとることができる。

 複数のS-Nodeで実行された処理結果はC-Nodeでマージされ,クライアントに返される。

 NTTデータではC-Node2台,S-Node4台までの構成でTPC-Cベンチマークを実施,「トランザクション処理でもスケールアウト(サーバー台数に応じて性能が向上)することを確認した」(NTTデータ先端技術 オープンソース技術部長 鈴木幸市氏)という。

 RitaDBの開発には,中国科学院も協力している。中国科学院は,データのレプリケーション(複製)やバックアップなどの技術を提供した。

 NTTデータでは「ここまでで矛盾なくスケールすることは確認できた。2006年度には,RitaDBを実際のシステムに適用することを目指す」(NTTデータ 基盤システム事業本部 オープンソース開発センタ 田中一男氏)としている。

 NTTデータでは,すでにPostgreSQLで並列分散処理を行い検索性能を向上させるソフトウエア「PostgresForest」を開発し,オープンソース・ソフトウエアとして公開している(http://www.nttdata.co.jp/services/postgresforest/)。このソフトウエアは,NTTデータが構築した郵便貯金カード普及協会「会員管理システム」で開発した機能がベースになっている(関連記事)。また,PostgreSQL 8.1で正式に採用された64ビット対応も,NTTデータは中心となってかかわっている(関連記事)。

【訂正】
掲載当初「Oracle RAC(Real Application Clusters)RACではクラスタを構成するサーバー間で同じデータを同時に更新するなど矛盾が生じた場合,アプリケーション側で対応する必要がある」と記述しておりましたが誤りです。お詫びして削除いたします(2006年3月27日)