次はインメモリデータグリッドがどういった仕組みで成り立っているかを見ていこう。
インメモリデータグリッドは、データの登録時に、その値に応じてデータの格納先のサーバを1つに決定する。この際、オリジナルのデータ(プライマリデータと呼ばれる)が格納されているサーバとは別のサーバにデータのコピーを格納することで、データに冗長性を持たせることができる。
プライマリデータを保持するサーバが何らかの理由で停止した場合には、フェイルオーバーが行われ、コピーがプライマリデータに繰り上がる。インメモリデータグリッドではこうしてシステムの信頼性を向上させることができる。
インメモリデータグリッドは以上のようにデータを分散配置し、冗長化によってシステムの信頼性を確保して使うのが一般的である。このような分散配置方法はパーティション方式と呼ばれる。さらなる検索の高速化を実現したい場合には、いくつかの制約があるもののレプリケーションという方法を選択することもできる。
なお、コピーの数は0以上の任意の値を設定することができ、システムに求められる信頼性に応じて冗長性を高めることができる。耐障害性を高めたい場合には、求められる耐障害性のレベルに応じてデータのコピーを多く取るようにすると良いだろう。
一方、レプリケーションとは、全てのサーバに全てのデータを重複して配置する方法だ。パーティションとは異なり、どのサーバに配置されたデータもプライマリデータとみなされる。レプリケーションでは、検索時にいずれのサーバにアクセスしてもデータを得ることができるため、高い検索性能が求められる場合に向いている。
ただし、レプリケーションでは、扱えるデータ量は1つのサーバのメモリ量に制限されるため、データ量の増大に対するスケーラビリティは得られない。また、サーバ台数が増えるとデータの登録/更新時におけるサーバ間のデータ同期に時間がかかるため、登録/更新処理についてはサーバ台数が増えるほど速度は下がることになる。
通常はパーティションを使い、スケーラビリティや登録/更新の高速性が求められない場合にのみレプリケーションを使うようにすると良いだろう。
次回はインメモリデータグリッドを実際に導入する際の課題と、その対応方法を中心に解説する。
ウルシステムズ
▼竹田 正和(たけだ まさかず)
ウルシステムズにて、プロジェクトマネージャ、ITアーキテクトとしてシステム開発に従事。先端技術を用いたアジャイル開発プロジェクトから、高い品質を求められる企業の基幹システムまで幅広い種類のプロジェクトに携わってきている
▼横山 芳成(よこやま よしなり)
ウルシステムズにて、ITグランドデザインや、プログラムマネジメント、プロジェクトマネジメントのデリバリを数年担当。直近では、様々な業種へのプリセールスや、事業会社のシステム部門への実践的なトレーニング、コンサルティングプロジェクトでのスーパーバイザーなどを務めている。PMP、CISA。
▼山河 征紀(やまかわ まさき)
ウルシステムズにて、ミドルウェア、フレームワークの開発を担当。データグリッドを用いたリアルタイム処理を中心に最先端の技術でビジネスをリードする戦略的ITソリューションに従事している。高信頼分散データグリッドフレームワークULFIRE開発者。
Copyright © ITmedia, Inc. All Rights Reserved.