NoSQLデータベースの「Cassandra」最新動向。Cassandra Summit 2012(前編)
代表的なNoSQLデータベースの1つ「Apache Cassandra」をテーマにしたイベント「Cassandra Summit 2012」が、8月8日にサンタクララで開催されました。
Cassandraは、キーバリュー型データストアとして高速なデータの入出力や高いスケーラビリティが特徴です。最新バージョンではマルチデータセンター、マルチテナンシーなど高度な機能も搭載しました。
そうした最新機能などが紹介された、Cassandra Summit 2012で行われたCassandraの主要な開発者Jonathan Ellis氏の基調講演「The State of Cassandra, 2012」の内容をダイジェストで紹介します。
The State of Cassandra, 2012
基調講演に立つJonathan Ellis氏。
Cassandraは昨年に正式版となり、これが現時点のユーザーだがこれも氷山の一角で、オープンソースも含めると数千ユーザーになると思う。
Cassandraがどのように使われているのか、いくつかの事例を紹介したい。
1つめはeBay。いくつかのアプリケーションで使われているが、1つはSocial Signalのlike/want/own機能がCassandraで実装されている。また、これらのデータをHadoopとCassandraインテグレーション機能で分析もしている。
時系列機能
eBayでCassandraが利用される大きな理由の1つが、時系列(Time Series)の機能だ。一定の期間をベースに次々と入ってくる情報のトレンドを示すことができる。
この画面の左に見えるのは、Datastax(Cassandraの開発元)が提供するOpsCenterだ。Cassandraのモニタリングを行えるもので、これ自身がCassandraの時系列機能を使っている。
このようなパフォーマンスのメトリクスやフィナンシャルデータなど、ビジネスの中には至る所に時系列データが存在し、そのために多くのユーザーがCassandraを使っている。
マルチデータセンター対応
eBayでは、マルチデータセンター機能も使っている。これは業界でもっとも優れた機能だ。Cassandraクラスタを分散したデータセンター、クラウドやオンプレミスのデータセンターに配置できる。
Hadoopサポート
Hadoopのサポート。Hadoopはビッグデータの分野で誰でも知っていると思うが、Cassandraとは補完関係にある。Cassandraは小さなリクエストを大量に処理するのに優れており、Hadoopは大きなデータをまとめて分析する機能に優れている。
Cassandraのリアルタイムレプリケーション機能によって、MapReduceのジョブをCassandraのデータに影響を与えることなく実行できる。
マルチテナンシー
ディズニーではマルチテナンシー機能を活用している。これは大きなCassandraのクラスタを複数のアプリケーションが共有しており、運用は1つのクラスタとしてできるというものだ。
アプリケーションごとに異なる機能要件が必要なこともある。例えばあるアプリケーションではSSDにホットデータを入れて高速なアクセスを要求する一方で、大きなアーカイブデータを要求するアプリケーションもあるだろう。Cassandraはツールによってそうした管理が可能だ。
エンタープライズサーチ
エンタープライズサーチ。CassandraはフレキシブルなインデックスAPIを提供しており、独自のインデックス構築をコーディングできる。また検索エンジンのSolrへのインターフェイスも備えており、SolrのインデックスをCassandra経由で利用できる。
スケーラビリティ、高性能、可用性が大きな採用理由
これらの事例をまとめると、Cassandraを採用数理由として、大規模なスケーラビリティ、高性能、単一障害点がなく高い信頼性と可能性がソフトウェアのコアとしてあるからだといえる。
また、以前のバージョンでは読み込み性能に比べて書き込み性能が低かったが、ストレージエンジンの変更などによって書き込み性能を大幅に改善し、以前のバージョンと比較して全体に性能向上をしている。
Netflixが昨年、AmazonクラウドのSSDインスタンスを使ったストレステストでは、サーバを追加するごとにリニアにスケールアップすることが示された。