オルタナティブ・ブログ > Azureの鼓動 >

クラウド戦役をZガンダム視点でわかりやすく解説するブログ+時々書評。

Key Valueストアがリレーショナルデータベースを駆逐するシナリオの妥当性

»

WEB+DB PRESSの特集がkey-valueストア入門だったり、日経コンピュータでも
「キー・バリュー型データストア開発者が大集合した夜」という記事を掲載していたり
最近何かと「Key Valueストア」という用語を目にする機会が多いのではなかろうか。
クラウドを技術的側面で語る際に、仮想化などと並んで欠かせない要素となっている
ような印象を受けるかもしれないが、実際のところどうなのだろうか?

このKey Valueストアの盛り上がりを後押ししているのがクラウドコンピューティング
ブームであることは間違いない。ただ、Key Valueストア自体はとりたてて新しい技術
ではなく、Oracleが買収したことで一時期話題になったBerkrey DBなど、古くから
存在していたものもある。ではなぜクラウドだからKey Valueストアという流れが
できるのだろうか。3つの流れをみていきたい。

■memcached周辺

まず、地道にWebアプリケーションのキャッシュ技術を追求してきた人たちが、
キャッシュ用Key Valueストアとしてデファクトになりつつあるmemcached
影響を受けたさまざまなバリエーションを開発し、大規模Webアプリケーションに
組み込んで実際に効果を上げつつあるという、健全かつオーガニックな流れがある。

それぞれの詳細は、WEB+DB PRESSの特集に詳しいが、MemcacheDB、repcached、
Flare、Tokyo Tyrant、groongaなどmemcached互換のプロトコルを持つものや、
Tokyo Cabinet、GDBM、QDBM、TinyCDB、CouchDBなどの実装が存在する。
なぜこのようなフラグメントな状態になっているかを解く鍵はmemchachedにある。

まず、memcachedは非常にシンプルな構造であり、6000行そこそこのソースで、
200K程度のバイナリとなる。Facebookやmixiなど大規模Webサイトを支える
基盤としては正直ギャップを覚える。そしてこの衝撃的なシンプルさが

1.技術的興味を持った若者がソースを追ってみたくなる
2.memchached自体がシンプルなので場合により追加実装が必要になる
3.個人または少人数で追える、実装できる規模である

という波及効果を生み出し、キャッシュ用Key Valueストアおよびその派生を
生み出す原動力になっているのだろう。自身もスタートアップ企業でのCTOを
経験しながら東工大准教授となっている首藤氏も驚いていたようだが
日本人の若者が多く関わっている姿は頼もしい限りである。

■プライベートクラウド陣営

多くのオープン技術に商用版があるように、memcachedのような使い方ができる
ソフトウェア製品が存在している。OracleのCoherenceやIBMのWebSphere eXtreme Scale、
マイクロソフトが開発中のコードネーム:velocityがそれにあたる。
いずれも、大手ソフトウェアベンダーが多額の資金を投じて買収したり、
基礎研究から育て上げてきた製品であり、memcached周辺のボトムアップな
動きとはかなり趣が異なるが、基本的にはRDBMSなどの永続化ストレージを
バックにおいて、インメモリキャッシュとして高速化、分散処理に寄与する
という点では、memcachedに近い使い方をされるものである。

大手テクノロジーベンダーがこの領域に投資をする理由は単純で、中長期的に
ビジネスとして見込める算段があるからだ。仮想化と同じくオンプレミスにも
応用できるクラウド技術というのは、コスト削減に効くという若干ミスリードな
宣伝活動のおかげで、ユーザー企業の興味を惹き始めている。

特に日本では、SI'erや情報子会社頼みのビジネス構造上、日頃エンタープライズ
領域でつきあいのある彼らに「クラウドっぽいことをやってみたい」といった
ゆるふわな要望をあげたところで、SI'erは困ってしまう。memcachedなどの
オープン技術を自分のリスクと努力で検証しながら組み上げてゆくよりは、
商用製品として提供されているものを活用してシステムを構築したくなるだろう。

ビジネスユースケースや高い可用性要求にあわせた面倒な実装や、人でのかかる
技術問い合わせサポート、数年にわたる更新モジュール提供などの付加価値で
オンプレミス向けのクラウドビジネスをふくらませようとしているのである。

■BigTable、SimpleDB、Azure Storage Service

そして最後にパブリッククラウド戦略をとるGoogle、Amazon、マイクロソフトが
異なる戦術をとりながらいずれも独自のKey Valueストアを持っている点も見逃せない。
これら技術は、高速化のための分散キャッシュというよりは、スケーラビリティを
重視した仕組みである。Key Valueストアのような単純なストレージ構造を持ち込む
ことで、ほぼ無限のスケーラビリティを価値として提供できる。

スケールアウト可能なアーキテクチャを実現することは難しく、これまで天才
アーキテクトのセンス頼みなところもあった。そこに目をつけたPaaSベンダーは
アプリケーション開発者が気軽に利用できるプラットフォームをクラウドとして
提供することがPaaSベンダーとしては外せない価値となることを理解し、
そのための仕組みや開発SDKなどを矢継ぎ早に提供している。

前の2つの流れがキャッシュからきていることでインメモリ処理前提であるのに対し、
ここで用いられるKey Valueストアは基本的に永続化の仕組みを備えている。
.NETやJavaのコードからオブジェクトをシリアライズする、いわばファイルシステム
の代わりとして、スケーラブルなKey Valueストアを用意しているのである。

さて、ここまで3つの流れを説明してきたが、タイトルにあったリレーショナル
データベースを駆逐するか?という論点の結論はだいたい想像ついただろうか?

短期的にはNoである。

Key Valueストアは、いかに商用実装といえど、高速化やスケーラビリティのために
割り切った実装となっており、リレーショナルデータベースを用いなければ実現が
難しい正規化やJOIN、あるいはトランザクション処理には向いていない。
バックにリレーショナルデータベースを持ちながら、フロントにKey Valueストアを
利用するというのが現実的な落としどころだろう。

が、中長期的にはYesの可能性がある。

フロントのKey Valueストアが十分に発達し、かつ運用面での信頼も得られてくると
トランザクションを含むデータ出し入れのインタフェースを吸収するようになる。
そうすると、バックの永続化の仕組みがリレーショナルデータベースである必然性が
なくなってくる。XMLファイルでも、Excel表でも、単なるテキストファイルでも、
なんでもよいのではないか、という気づきが生まれ、業界に広まるだろう。

そして、スピードを求める処理はKey Valueストアを用いたキャッシュが、
スケーラブルな永続化の仕掛けも、クラウド上のKey Valueストアベースの
ストレージが担当できるようになると、どうしてもリレーショナルデータベースを
利用しないといけない領域がじり貧に減ってくる。

ただ、この流れは一朝一夕には起こらない。
先日マイクロソフトがクラウド上のデータベースである SQL Data Services の
アーキテクチャ変更
を行ったのは、世の中の時間の流れに技術ロードマップを
あわせたためであり、Key Value的な要素を弱め、SQL互換のインタフェースを
より重視した実装となる予定だ。技術の普及には教育、運用、互換性保証などの
エコシステム全体に浸透させなければならない。ゴリ押しに技術で先行しても
疲弊するだけである。それでも世の中をがむしゃらに牽引する陣営がでてくれば
話は別だが、ロジカルには難しい判断だ。

Comment(0)