NoSQLデータベース

Apache Cassandra あぱっちかさんどら

CassandraワイドカラムDB分散DB高可用性CAP定理Facebook
CassandraってどんなときにMongoDBより向いてるの?

簡単に言うとこんな感じ!

Cassandraは「大量の書き込みを止まらずに処理したい」「世界中のデータセンターで同時稼働したい」ときに向いてるよ!SNSのタイムライン・IoTセンサーデータ・大規模メッセージングみたいに、「書き込みが超大量で落とせない」用途に強いんだ。


Apache Cassandraとは

Apache Cassandra は、Facebookが2008年に開発し、その後Apacheプロジェクトに寄贈した分散型ワイドカラムNoSQLデータベースです。

マスターノードなし(Masterless)」の完全分散アーキテクチャを採用しており、単一障害点がなく、理論上100%の可用性を目指した設計が特徴です。データを複数ノードにコピーして保持する「レプリケーションファクター」で耐障害性を確保します。


Cassandraの特徴

特徴内容
マスターレス分散全ノードが対等。単一障害点なし
高書き込み性能追記型(ログ構造)で書き込みが超高速
線形スケールノードを追加するだけで性能が線形増加
結果整合性デフォルトは結果整合性(調整可能)
CQLSQL似の独自クエリ言語(Cassandra Query Language)
マルチリージョン地理的分散を標準サポート

CAP定理上のCassandraの位置付け

CAP定理(Consistency・Availability・Partition Tolerance の3つは同時には満たせない)において、CassandraはデフォルトでAP(可用性・分断耐性)を優先します。


Cassandraの採用事例

  • Netflix:視聴履歴・推奨システム
  • Apple:約7.5万ノードで運用
  • Uber:ドライバー位置情報・トリップデータ

歴史と背景

  • 2008年:Facebookのインボックス検索のためにAvinash Lakshmanらが開発
  • 2009年:Apacheプロジェクトに寄贈
  • 2010年:Apache TLPとして正式リリース

関連用語