Cassandra入門と、さらに詳しく知るためのリソース集

2010年7月28日

クラウド時代の新しいデータベースとして、非リレーショナルな構造を持つNoSQLデータベースが話題になっています(NoSQL=Not Only SQL。命名の経緯はこちら)。そのNoSQLの中で、もっとも注目されているデータベースの1つがApacheのCassandraです。

The Apache Cassandra Project

Cassandraは、Facebookで大規模データ処理のために開発され、その後オープンソースとなり、現在ではApache Software Foundationのプロジェクトとして開発されています。

現在、CassandraはFacebookやDiggなどで使われている、もしくは使うことが検討されているとされ、Twitterでも(ツイートデータの格納には使われないようですが、それ以外の用途で)利用されています。

しかしまだCassandraに関する情報はそれほど豊富ではありません。そこでこの記事では、Cassandraについて理解するための情報を集めてみました。

Introduction to Cassandra

この記事を書くきっかけとなったのは、6月17日にパロアルトで行われたSilicon Valley Cloud Computing Groupのイベントで使われた資料「Introduction to Cassandra」がとてもよくできていたためです。

まずはこの資料のポイントを見つつ、Cassandraの概要を把握してみましょう。作成者はRackSpaceのGary Dusbabeck氏。

fig

Cassandraは、分散処理に対応したスケーラブルなデータベース。単一障害点(Single Point of Failer:SPOF)がなく、ノードの追加はシンプル。クラスタのメンテナンスも自動的に行われる。

fig

データをいくつのノードにレプリケーションするかは指定可能。コンシステンシレベル(一貫性のレベル)も複数ある。

  • Zero:一貫性の保証なし
  • One:(書き込み)1つのノードの書き込みを保証。(読み込み)最初のノードからの読み込みをすぐに返す
  • Quorum:(書き込み)レプリケートするノード数の半分+1ノードへの書き込みを保証する。(読み込み)すべてのレプリカの中から最も新しいデータを返す
  • All:(書き込み)すべてのレプリカへの書き込みを保証する。(読み込み)すべてのレプリカから読み込んでもっとも新しいデータを返す

(この説明は、後述する「Cassandraのアーキテクチャまとめ」を参考にさせていただきました)。

fig

クラスタ内のノードはリング構造となっており、トークンが割り当てられている。

fig

データモデル。キーバリュー型だが、階層的な構造を持つ。

fig

データモデルを図解すると、このようになる。

fig

コンシステンシ(一貫性)レベルを選択できるのも、Cassandraの特徴。その場合、強い一貫性を設定するためにはA(Availability:可用性)とP(Partition Torrerant:分断耐性)を少しだけあきらめる。

fig

Introduction to Cassandra」は全部で47枚のプレゼンテーションとなっています。ぜひ、直接参照してみてください。

日本語でCassandraを解説したプレゼンテーション

日本語でCassandraを解説したプレゼンテーションとしては、サイバーエージェント 桑野章弘氏の「インフラエンジニアのためのcassandra入門」を、まず紹介しましょう。5月14日に行われた、ハートビーツが主催するインフラエンジニア勉強会でのプレゼンテーションです。Cassandraの概要、仕組みが把握できるようになっています。

同じくサイバーエージェントの名村卓氏による、同社内で5月に行った勉強会のプレゼンテーション資料も、Cassandraのデータモデル、内部の仕組みの解説など、分かりやすいものになっています。

サイバーエージェントは現在、Amebaのバックエンドに現在約300台ほどのMySQLサーバ(ブログ用に120、それ以外に170)を利用しているとのことで、これをNoSQLへ置き換える候補の1つとしてCassandraを検討されているようです。

4月28日のCassandra勉強会の資料として公開されている@yukim氏の「Cassandraのしくみ データの読み書き編」も、データの書き込み時にCassandraがどのように分散したノードへデータを書き込むのか、読み込み時にはコンシステンシレベルに応じてどのような仕組みでデータを読み込むのか、といった動作が詳しく解説されています。

Cassandraのアーキテクチャ、動かし方、公式ドキュメント

Cassandraのアーキテクチャまとめ - dann@webdev - dann's portal

Cassandraのアーキテクチャまとめ」という記事を公開しているのはdann@webdev氏。API、ツール、ストレージの仕組み、パーティショニングなど、Cassandraのアーキテクチャを解説しています。

技術評論社のWebサイト「gihyo.jp」に掲載されている記事「Cassandraのはじめ方─手を動かしてNoSQLを体感しよう」は、実際にCassandraをインストールし、動かしつつその動作や仕組みについて紹介している記事。

この2本の記事は、Webで読めるまとまった日本語の記事としてもっとも充実したものだと思います。

FrontPage_JP - Cassandra Wiki

そして、日本語で読めるCassandraの公式ドキュメントといえば、「Cassandra Wiki」。公式ドキュメントの翻訳だけでなく、主要なリソースへのリンクもここに集積されています。

ユーザー向けドキュメントとして、Cassandraの動かし方、アーキテクチャオーバービューなどが読めるほか、高度なセットアップとチューニングについて、開発者向けの内部アーキテクチャの仕組みなど、実際にCassandraの採用を検討するのならば必読のドキュメントといえます。

コンシステンシに関する2つのプレゼンテーション

Cassandraのコンシステンシにフォーカスして解説したプレゼンテーションを2つ、最後に紹介しておきましょう。

もしもほかにもおすすめしたいCassandraの情報があったら教えてください。

関連記事

そのほか、NoSQLデータベースの話題については「NoSQL)」タグからどうぞ。

あわせて読みたい

NoSQL データベース




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本