amazonがXMLDBを採用した理由!
XMLデータベースの技術
オブジェクトデータベースとは、データとそのデータの処理を1つのオブジェクトとしてとらえ、データを保持するデータベースです。現在幅広く利用されているリレーショナルでは、テーブルでデータが管理されており、オブジェクトデータベースとは構造が大きく異なります。
先ほどアマゾンの例で紹介した「ObjectStore」もオブジェクトデータベースです。今回は、このObjectStoreをコアデータベースに採用しているXMLデータベース「Cyber Luxeon」を例に、解説を進めていきましょう。
Cyber Luxeonは、W3C標準のXML処理エンジンを内蔵し、XMLドキュメントを階層構造のまま、DOMオブジェクトとして格納しています。
まずは、キャッシュフォワード技術について解説してきましょう。キャッシュフォワード技術は独自の分散型アーキテクチャーです。従来のデータベースは検索のパフォーマンス向上を目的として、データベースサーバ側にキャッシュを持ってます。キャッシュフォワード技術とは、このキャッシュをアプリケーションサーバ側にも持たせる技術のことです。
キャッシュフォワード技術を用いて設計されたObjectStoreでは、データ検索を行う際に、直接データベースサーバのデータにアクセスするのではなく、アプリケーションサーバ側のキャッシュにアクセスすることで、単純な検索処理の向上だけでなく、サーバやネットワークの負荷を大幅に軽減することが可能です。
Cyber Luxeonでは、XMLデータをメモリに配置する「XMLキャッシュ」という技術にあたります。メモリ上にロードされたXMLを高速に検索することで、メモリスピードの処理速度で結果を返すことが可能です。さらに、このXMLキャッシュは別マシンへ分散することができ、クライアントのアクセス数が増大した場合や、サーバ側のXMLデータが増加した場合に、キャッシュサーバを増設するといった段階的な拡張(スケールアウト)ができるのが特徴です。
また、Cyber Luxeonでは「ダイナミックモデリング」と呼ばれる技術が採用されています。これは、XMLをノードレベルで処理(検索・更新)する技術です。この技術によって、システムを停止することなく、XMLのデータ構造を運用中にダイナミックに変更することが可能です。サービスを稼働し続けなければいけないようなサービス(B2B、B2C向けの大規模ECサイトなど)で活用されています。
今回紹介した技術を図2にまとめました。
データベースは適材適所
ここで、XMLデータベースを活用するにあたってのポイントとコツを整理してみましょう。
まずデータベースの選定のポイントは、適材適所です。変化が激しく予測がつきにくいデータを無理やりRDBで管理しても、データベースの設計変更による運用後のシステムメンテナンス回数が増大し、データの利活用を妨げる結果となってしまいます。
定型的なデータはRDBで管理し、そのデータを時系列でまとめて、ほかのデータとの関連付けをする必要が出た場合には、柔軟で拡張性のあるXMLデータベースに格納するのが効率的ではないかと考えます。
ではXMLデータベースの設計のコツはなんでしょうか。ここまで述べた通り、XMLデータベースは、データ項目の変化に対しての柔軟性と拡張性を持っています。ですから、データ設計も「ナナサン(7:3)の法則」で良いわけです。
つまり、サービス当初に分かっている基本項目が全体の70%だとすると、予測不可能な30%の項目については、運用後、必要に応じて拡張していけば良い、といった割り切りで設計すると良いのです。
ところで、皆さんのまわりにRDBに格納できなかった、つまり捨てられていたデータはありませんか?RDBに格納しなかった理由は、「格納するための項目がなかった」「1カラムの文字制限にあふれた」「文章なのでそもそもデータベースに入れることすら考えなかった」というものが大半を占めているはずです。
しかしよく考えてみてください。こういったデータこそ、まさに顧客や現場の声であり、捨ててはいけない貴重なナレッジではないでしょうか。ですから、そのナレッジはXMLデータベースで管理できるよう工夫することが大事です。