Cassandra データ一貫性

2017/12/11

データ一貫性

Cassandraの一貫性について記述する。
以下の関連ドキュメントは把握していることを前提とする。

Apache Cassandra document
Cassandra データ構造
Cassandra データ処理

Consistency

Cassandraはデータの一貫性をコントロールすることができる。
またCassandraの一貫性レベルは、ReadとWrite両方のコントロールができる構造となっている。

書き込み Cnsistency level

引用
Datastax document

Level 説明 一貫性の強さ
ALL クラスタ内のすべてのノードにCommit logとMemtableの書き込まれている必要がある。 とても強い。
EACH_QUORUM クラスタ内のすべてのCassandra DCにCommit logとMemtableの書き込まれている必要がある。 強い。冗長構成で一貫性を担保したい場合におすすめと考えられる。
QUORUM クラスタ内ノードの過半数のCommit logとMemtableの書き込まれている必要がある。 強い。
LOCAL_QUORUM クラスタ内のCassandra 1DCあたりのノード過半数にCommit logとMemtableの書き込まれている必要がある。 まあまあ強い。
LOCAL_ONE クラスタ内の1DCあたりの1ノードにCommit logとMemtableの書き込まれている必要がある。 強くない。

読み込み Consistency level

引用
Datastax document

Level Description Strength
ALL クラスタ内のすべてのノードにCommit logとMemtableの書き込まれている必要がある。 とても強い。
EACH_QUORUM クラスタ内のすべてのCassandra DCにCommit logとMemtableの書き込まれている必要がある。 強い。冗長> 構成で一貫性を担保したい場合におすすめと考えられる。
QUORUM クラスタ内ノードの過半数のCommit logとMemtableの書き込まれている必要がある。 強い。
LOCAL_QUORUM クラスタ内のCassandra 1DCあたりのノード過半数にCommit logとMemtableの書き込まれている必要がある。
まあまあ強い。
LOCAL_ONE クラスタ内の1DCあたりの1ノードにCommit logとMemtableの書き込まれている必要がある。 強くない。

QUORUMの計算

1
quorum = (replication factor total / 2) + 1