2010年2月26日金曜日

HBase vs Cassandraに関する河野氏からの意見

tatsuya6502

#Cassandra と #HBase の件ですが、Apacheのトップレベルプロジェクトなのか、サブプロジェクトなのかというのは、それぞれのプロジェクト自身が選択することなので、「Apache的にはこちらが優勢」といった考え方はないと思います
#Cassandra と #HBase は、それぞれ得意とする分野も異なりますので、両方に存在意義がありますし、開発メンバーも全く別なので、開発の優先順位をつける必要もないはずです

#HBase の場合は、 Hadoop の各コンポーネント(HDFS、ZooKeeper、Map Reduce)があって初めて成り立つ製品ですし、大規模なデータセットを意識していますので、 Hadoop のサブプロジェクトになっている現在の形が自然に思えます
#HBase は、元々の用途が、 Wikipedia の自然言語検索エンジンなので、HTMLとそれに関連するタグ情報といった「非定型のデータ」で、さらに、数十億レコード規模の「大規模なデータセット」といった条件で最高の性能を発揮します
また #HBase は「Map Reduce」との相性もいいですし、従来のDBのように「strong consistency」モデルを採用しています。さらに、オプションで、2次インデックスや楽観的ロック方式のトランザクションも使えたりと機能は豊富です

#Cassandra は、設計の出発点が、Amazonの「ショッピングカート周辺のデータセット」で「レスポンスの早さ」を実現するためのものだったのですが、さらに、 HBase が得意な「非定型のデータ」も扱えるよう拡張されています
#Cassandra は、基本は eventual consistency モデルで動作しますが、クエリーごとに「consistencyの強度が選べる」ので、 strong consistencyも使えます
一般的なウェブの用途だと、 #Cassandra がフィットするケースの方が多そうです。 #HBase は、大規模データセットで Map Reduce が使われるケースに最適なのではないでしょうか
コメントを投稿