連載
» 2012年09月19日 12時00分 UPDATE

戦略的ITを実現するキーテクノロジ(2):“限界”を突破する技術、「インメモリデータグリッド」 (1/2)

本連載では、戦略的IT活用を実現する「これからの技術要素」を紹介していく。前回は金融のアルゴリズム取引などに使われている大量データを瞬時に処理する仕組み「CEP」を紹介したが、今回は今後のデータ量の増大にも対処できるテクノロジ「インメモリデータグリッド」について解説する。

[竹田正和(ウルシステムズ), 横山芳成(ウルシステムズ), 山河征紀(ウルシステムズ),@IT]

現代のシステムに求められる高速性とスケーラビリティ

 今日のビジネス環境において、情報システムはより多くのデータをより速く処理することが求められている。

 例えば金融分野では、取り扱う金融商品や市場への参加者の増加に伴い、商品の価格や金利など、頻繁に更新される大量データを高速に処理し、リアルタイムにユーザーに情報を提供しなければならない。流通分野では、より精緻な在庫管理を実現するために、膨大な在庫情報と、過去の販売実績、直近の販売量などから、最適な発注数を的確なタイミングで提供しなければならない。

 しかも、取り扱うべきデータはさらに増加し、どこまで増え続けるかは誰にも予測できない状況でもある。このため、システムには、今速いだけではなく、今後のデータ量/処理量の増加にも対応可能なスケーラビリティが同時に求められている。

ところがこれまでのRDBを中心としたシステムでは、処理性能とスケーラビリティには限界があり、このような要求に答えることは困難だ。そこで最近注目を集めている技術がインメモリデータグリッドである。

 インメモリデータグリッドとはひと言で言えば、「大量のデータを多数のサーバのメモリ上で分散して管理する技術」だ。データをメモリ上に置くことで、高速なデータアクセスを実現している。また、データを多数のサーバで分散して管理できるため、サーバを追加することで、簡単にスケールアウトさせることができる。

 データを多数のサーバで管理すると言っても、アプリケーションからは全てのデータが仮想的な1つのメモリ空間に置かれているように見える。このため、アプリケーションが実際に多数のサーバを認識する必要はない。

図1 インメモリデータグリッドは多数のサーバのメモリ上でデータを管理する。アプリケーションから見ると仮想的な1つのメモリ空間にデータが存在するように見える 図1 インメモリデータグリッドは多数のサーバのメモリ上でデータを管理する。アプリケーションから見ると仮想的な1つのメモリ空間にデータが存在するように見える

 インメモリデータグリッドはこれらの特徴のほか、トランザクション管理、クエリ検索、データの冗長構成など、エンタープライズ向けの機能を提供している。

インメモリデータグリッドとそのほかの技術

 では、インメモリデータグリッドと、RDBなどほかのデータ管理技術との違いは何だろうか。また、インメモリデータグリッドのほかにも、インメモリデータグリッドと同じように大量のデータを扱える技術や、データを高速に処理するための技術は存在する。それらとインメモリデータグリッドとの違いを見てみよう。

RDB

 ここまでに述べたように、インメモリデータグリッドがRDBと異なる点としては、データの格納先がメモリであることと、多数のサーバでデータを分散管理することが挙げられる。そのほかの重要な違いはデータの持ち方である。インメモリデータグリッドは、RDBのようにデータを表としては保持しない。代わりにキーとバリューのペアとしてデータを保持する。キーはデータを一意に識別するためのもので、バリューはJavaや.NETのオブジェクトそのものである。

memcached

 インメモリデータグリッドと同様に、メモリ上にデータをキーとバリューのペアで管理する技術としてmemcachedがある。

インメモリデータグリッドとmemcachedとの違いは、インメモリデータグリッドではエンタープライズ向けの、信頼性を高める機能を多く提供していることだ。

memcachedはシンプルな構成で導入が容易であるため、単純なキャッシュ用途で使い、すぐに成果を上げたい場合に向いている。一方、インメモリデータグリッドはトランザクション管理や冗長構成など、データの一貫性やシステムの信頼性を向上させるための仕組みを提供しているため、エンタープライズ向けのシステムに導入するのに向いていると言えるだろう。

Hadoop

 多数のサーバを使って大量のデータを処理するための技術としては、Hadoopも同じように注目を集めている。しかし、Hadoopはインメモリデータグリッドとは設計思想の異なった技術である。

Hadoopは大量のデータをインプットし、多数のサーバを使って一括処理するための技術だ。このためバッチで統計処理する場合などには向いているが、リアルタイムなオンライン処理には向いていない。一方、インメモリデータグリッドは、大量のデータの中から処理に必要なデータを高速に取得し、そのデータに対してリアルタイムに処理を行うことに向いている。

代表的なインメモリデータグリッド製品

 インメモリデータグリッドの代表的な製品としては「GemFire」と「Coherence」がある。

GemFireはGemStoneにて開発され、現在ではVMwareの1製品となっている。GemFireは世界中で多くの導入実績を持ち、また、WANをまたいだグリッド構成など、ほかの製品にはない多くの独自機能を提供している。

 CoherenceはTangosolが開発したもので、現在ではOracleの豊富なミドルウェア製品のラインナップの1つとして提供されている。また、オープンソースソフトウェアでのインメモリデータグリッド製品として、RedHatが運営しているJBoss Communityのプロジェクトの1つである「Infinispan」がある。

       1|2 次のページへ

Copyright© 2016 ITmedia, Inc. All Rights Reserved.

Loading

ピックアップコンテンツ

- PR -

注目のテーマ