[NoSQL]Cassandra入門①

Facebook にシェア
このエントリーをはてなブックマークに追加
[`livedoor` not found]
LinkedIn にシェア
[`evernote` not found]
GREE にシェア
LINEで送る

Cassandraとは

シェアードナッシングアーキテクチャ(分割できないならスケールできない)をポリシーとして、従来の分散方法であるマスター/スレーブ方式から脱した非集中管理型アーキテクチャを実現した、すべてのクラスタノードが強調して動作するデータベース。
このアーキテクチャはシングルポイントが少なく、障害発生時の影響もほとんどない一方、トランザクションはリレーショナルデータベースに比べ劣っており、一貫性は弱一貫性と呼ばれる、頻繁に更新がなければ最終的に全ノードは同期されるというレベルの一貫性になっている。

Cassandrの構造

端的に言うとjsonのような構造をしている。

Musician:							カラムファミリ1
	bootsy:							ロウキー
		email: bootsy@pfunk.com,	カラム名:値
		instrument: bass			カラム名:値
	george:							ロウキー
	email: bass						カラム名:値
Band:								カラムファミリ2
	george:							ロウキー
		pfunk: 1968-2010			カラム名:値

用語定義

項目 意味
キースペース データベース。ひとつのアプリケーションにおいて複数のキースペースを利用することは推奨されていない。ただし、後述のレプリカ配置戦略はキースペース毎に定義されるため、データの構造上にレプリケーションレベルは分けた場合は例外です。
カラムファミリ 論理的なデータの分割単位をあらわす。リレーショナルデータベースにおけるテーブルの単位となる。
カラム 名前と値のセット
ロウ カラムの集合を持つ独立したエンティティ
ロウキー 各ロウのユニークな識別子

各カラムはタイムスタンプを保持し、サーバーサイドでのコンフリクトを避けるために利用されます。(検索条件に含めることは不可)

データベースの世界とCAP定理

分散コンピュータシステムのマシン間の情報複製に関する定理である。CAPとは
C・・・Consistency(一貫性)
A・・・Availability(可用性)
P・・・Partition-toleranc(分断耐性)
の頭文字であり、この三つを同時に満たすことを保証することはできないことを示した定理である。

具体例をあげると
C+A(一貫性+可用性) ・・・MySQL, SQL Server, Postgres等のリレーショナルデータベース
C+P(一貫性+分断耐性)・・・Neo4J, Google Bigtable, MongoDB, HBase, Hypertable, Redis
A+P(可用性+分断耐性)・・・Cassandra, Voldemort, CouchDB, Riak

Cassandraの利用メリット

Cassandraは以下のアプリケーションに向いています。
・巨大なデプロイメント
・大量の書き込み
・統計
・解析
・地域分散
・変更が大量に発生するスタートアップアプリケーション

Cassandraのアーキテクチャ

代表するものを列挙します。

ピアツーピア(P2P)、アクルーアル故障検出、ヒントハンドオフ、トゥームストーン、ステージイベントデオリブンアーキテクチャ(SEDA)

Cassandraのセットアップについては[NoSQL]Cassandra入門② – Cassandraのインストールと起動・停止を参照。

コメントを残す