2016-09-24 17 views
0

私はCassandraにすべての一貫性レベルを持っています。これは、「最高の一貫性と最低の可用性」を提供します。このレベルが強い一貫性を提供すれば?Cassandraの可用性ペナルティは強い整合性モードで

どのような利用可能なペナルティですか?私は、データが利用できない場合は見当たりません。誰もそのような場合の例を挙げることができます。

答えて

2

整合性レベルALLを使用する場合、コーディネーターはすべてのノードから応答を受け取る必要があります。これは、次のことを意味します。

  • 書き込みが成功すると、誰も以前の状態(高い整合性)を読み取ることはありません。
  • ノードが1つでも応答しない場合は、読み取り/書き込み操作全体が失敗します(可用性が低い)。

詳細については、CAP theoremを参照してください。


誰もが、このような場合の例を与えることができます。

  • メンテナンスのためにノードが切断されています。
  • ノードがクラッシュします。
  • サーバルーム/データセンターで電源が切れます。
  • ノードが高負荷で応答しなくなる。
  • ノードへのネットワーク接続がダウンしたり、遅すぎたりします。
  • データはまだすべてのノードに伝播されていません。
+0

例はこれを暗示していますが、答えは間違っていませんし、CL = ALLはおもちゃと教材です。実際のアプリケーションではそれを実稼働環境で使用しているわけではありません。単一のノードでも低速/低速であってもクエリエラーが発生するため、これを行うのは夢中です。読み取りと書き込みの両方にLOCAL_QUORUMを使用すると、実用的な点で同じ量の一貫性が得られますが、可用性のトレードオフ(各レプリカセットの半分以上は応答する必要があります)があります。 –

関連する問題