データ一貫性
Cassandraの一貫性について記述する。
以下の関連ドキュメントは把握していることを前提とする。
Apache Cassandra document
Cassandra データ構造
Cassandra データ処理
Consistency
Cassandraはデータの一貫性をコントロールすることができる。
またCassandraの一貫性レベルは、ReadとWrite両方のコントロールができる構造となっている。
書き込み Cnsistency level
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
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 |