クラウドコンピューティングにまつわる話をつれづれなるままに。。。

2009年5月15日金曜日

RDBとキー・バリューストア

今までWebアプリのバックエンドには(特に疑問もなく、というかちょうどよい代替物がなかったからか)MySQLなどのリレーショナルデータベース(RDB)が使われてきた。クラウドの技術的なポイントは、いかにスケールアウト(サーバ台数を増やして性能を上げること)するシステムを構築するかにあると思うが、RDBを何千、何万台にスケールアウトするのは難しい。

そこで、Googleにしろ、Amazon、Microsoftにしろ、RDBのデータモデルを捨てて、よりスケールアウト性の高いキー・バリュー型のデータモデルを採用している。これらのシステムでは、SQLに近いが、joinができないなど機能が制限された問合せ言語を提供している。たいていの処理はこれらで困ることはなさそうだ(本当か?)。むしろ表構造よりも柔軟な分、使い勝手がよいかもしれない。

関連して、最近SIGMOD09で発表された、RDBとMapReduceの性能比較論文が、各所で話題になっていたらしい。原典を読んでないので、憶測で書くけど、クラウド(MapReduce)の利点はスループットよりもスケーラビリティにあるので、100台ぐらいの規模で速度比較をしてRDBに軍配が上がるのは全然不思議じゃないと思う。もっと台数規模の大きなベンチマーク比較を見てみたい。あと、Hadoopにもまだまだチューニングする余地が残っているはずだ。
メモ:分散高速データI/O(「クラウド大全」P.265)
  • memcached
  • GFS
  • BigTable
  • HDFS
  • HBase
  • Dynamo
  • Velocity
  • Coherence
  • ObjectGrid
  • JBoss Cache
  • repcached
  • Tokyo Tyrant/Tokyo Cabinet
  • Flare
  • ROMA

0 件のコメント:

コメントを投稿