intra-mart Accel Platform Cassandra管理者ガイド 第15版 2018-12-01

3. Cassandra の概要

ここでは Apache Cassandra の概要や、基本的な知識を紹介します。

3.1. Apache Cassandra とは

Facebook社が開発したオープンソースのKey-Value形式でのデータベース管理システムです。
Facebook内でのユーザメッセージの検索機能で利用され、その後、2009年3月にApache Software Foundationに
寄贈され、2010年2月にApacheトップレベルプロジェクトに昇格しました。

3.2. Cassandra の特徴

Cassandra は、ブリュワーのCAP定理のうち、AP(可用性:Availability とネットワーク分断耐性:Partition Tolerance)を
重視しているため、以下のような特徴を備えています。
  • 高いパフォーマンス
  • 分散型で伸縮自在なスケーラビリティ
  • 単一故障点(SPOF)がないアーキテクチャ
  • 高可用性

3.3. Cassandra の一貫性保証

このように、可用性を高めるかわりに、ブリューワのCAP定理での一貫性:Consistencyを犠牲にしてます。
しかし、遅延とのトレードオフで一貫性のレベル設定することが可能で、Cassandra で設定できるレベルは、
  • Zero(一貫性の保証なし)
  • One(1つのみの一貫性を保証)
  • Quorum((ノード数+1)/2の数分の一貫性を保証)
  • ALL(全ノード数分の一貫性を保証)

があり、IMBoxでは、Quorum を採用しています。

コラム

ブリュワーのCAP定理

分散コンピュータシステムでのデータ複製において、同時に次の3つの保証を提供することはできないという定理。

../../_images/cap.png
  • 一貫性(Consistency)
すべてのノードは、同時に同じデータが見えなければならない。
  • 可用性(Availability)
特定ノードの障害により、他のノードの機能性が損なわれないこと。
  • ネットワーク分断耐性(Partition Tolerance)
ネットワーク障害などの通信障害などのメッセージ損失に対して、継続して動作を行う。

一般的にRDBは、一貫性(Consistency)と可用性(Availability)を満たしたCA型です。