これからは、コレ!旬なIT技術やこれから主流となりつつあるIT技術に関する情報をご紹介します。

2010年02月01日

クラウドを支えるデータベース
分散Key-Valueストア

クラウドに適した技術の登場

クラウドとは、インターネットを介したコンピューターの利用形態のことを指し、この1、2年の間に、多くのベンダーからクラウド関連の製品やサービスが発表、提供されたことで、ビジネスとしても利用可能なものが増えてきました。クラウドには、数台のコンピューターでサービスが提供されるものから、世界中に配置された数万・数十万のコンピューターによって提供されるような規模のものがあります。後者のような大規模なクラウド上で、効果的にシステムを構築するために、新しい技術が登場しています。今回紹介します分散Key-Valueストア(以下、分散KVS)は、クラウド上で用いられるデータベース技術の一つとして登場したものです。

分散Key-Valueストアの特徴

大規模なクラウドで用いられるデータベースでは、一般的に企業で利用されているリレーショナルデータベース(以下、RDB)と比較して、以下のような特徴を持つデータベースが必要になります。

■クラウド時代のデータベースに要求される性能

  • 高いパフォーマンス
    クラウド上のデータは全世界からアクセスされることから、大量のデータの処理を多数のコンピューターに分散し、高速に処理することが要求されます。
  • 高い柔軟性と拡張性
    全世界のユーザーから利用されることを前提とすると、予測を上回るデータ量の増加にも備えなければならないため、システム全体を稼動させながらコンピューターを追加するという高い柔軟性と拡張性が要求されます。
  • 高い可用性
    一般的に、コンピューターの数が増えれば増えるほどハードウェア故障の発生によるシステム障害の確率が高くなります。大規模なクラウドを構築する際には、世界中で数万以上のコンピューターが動作するため、たえずどこかでハードウェアが故障しても、整合性を損なうことなくシステムとして稼動し続ける仕組みが要求されます。

クラウドを支える技術として、以上のような要件を満たす一つとして注目されているのが分散KVSです。上記の要求を満たすために、分散KVSは現在企業向けのデータベースとして利用されているRDBと比べて、以下の面で機能の違いがあります。

■単純な問い合わせ

分散KVSでは、単純な問い合わせにすることで、複雑なデータ操作によるパフォーマンスの低下を防いでいます。例えば、RDBのように表と表の関係性でデータの意味を表すのではなく、予めデータの構造を単純化することで、問い合わせ自体も単純化し処理速度を向上させています。(図1、2参照)

RDBでは、複数のテーブルからデータを結合するなど、複雑な操作が可能
図1.一般的なRDBでの問い合わせ

分散KVSでは、データ構造を単純化することで操作を限定し処理速度を向上
図2.分散KVSでの問い合わせ

■分散環境に適したデータ管理(図3参照)

分散KVSでは、整合性を確保しながらパフォーマンスと可用性を高めるために、RDBと違ったアプローチを取っています。そのアプローチとは、同じデータを複数のコンピューターに複製して保存し、それぞれのコンピューター上のデータに変更が起きていないかどうかを随時チェックすることによって整合性を確保することです。このため、RDBと異なり、変更を検知して複製が終了するまでの間、不整合が発生することがあります。例えば、検索サイトで検索した結果の並び順が微妙に変わる原因の一つはこのためです。

・各コンピューターで同じデータを保存 ・随時変更をチェックし複製
図3.世界各地に同じデータを分散しパフォーマンスと可用性を向上

分散Key-Valueストアの今後

分散KVSは以上のような特徴があるため、リアルタイムの整合性を必要としない、膨大な量のデータを扱うシステムに向いています。企業での利用方法としては、情報系データベースとしての用途に向いています。更に、今後は基幹系のデータベースにも分散KVSが利用できるよう研究が進められています。企業内のデータベースも近年ますます肥大化してきており、ハイパフォーマンスな処理を行うために、クラウド関連の技術の適用範囲は今後ますます広がっていくと思われます。当社はクラウドを始め、お客様に最適なソリューションを提供できるように体制を整えております。是非ご相談ください。

2010年2月

ITの可能性が満載のメルマガを、お客様への想いと共にお届けします!

Kobelco Systems Letter を購読