Apache Cassandra あぱっちかさんどら
CassandraワイドカラムDB分散DB高可用性CAP定理Facebook
CassandraってどんなときにMongoDBより向いてるの?
簡単に言うとこんな感じ!
Cassandraは「大量の書き込みを止まらずに処理したい」「世界中のデータセンターで同時稼働したい」ときに向いてるよ!SNSのタイムライン・IoTセンサーデータ・大規模メッセージングみたいに、「書き込みが超大量で落とせない」用途に強いんだ。
Apache Cassandraとは
Apache Cassandra は、Facebookが2008年に開発し、その後Apacheプロジェクトに寄贈した分散型ワイドカラムNoSQLデータベースです。
「マスターノードなし(Masterless)」の完全分散アーキテクチャを採用しており、単一障害点がなく、理論上100%の可用性を目指した設計が特徴です。データを複数ノードにコピーして保持する「レプリケーションファクター」で耐障害性を確保します。
Cassandraの特徴
| 特徴 | 内容 |
|---|---|
| マスターレス分散 | 全ノードが対等。単一障害点なし |
| 高書き込み性能 | 追記型(ログ構造)で書き込みが超高速 |
| 線形スケール | ノードを追加するだけで性能が線形増加 |
| 結果整合性 | デフォルトは結果整合性(調整可能) |
| CQL | SQL似の独自クエリ言語(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として正式リリース