web-dev-qa-db-ja.com

カサンドラ:複製要因を理解する

架空の状況:

  1. Nノードでcassandraクラスターをセットアップします。
  2. キースペースを作成し、replication_factorを1に設定して、SimpleStrategyを使用します。
  3. いくつかのデータを追加します。
  4. 1つのノードを削除します。

これは、データの1/Nが欠落していることを意味しますか?

4
ethrbunny

読み取り要求の場合、はい、それが意味します。レプリケーション係数1は、通常、cassandra(単一のノードがない場合)では望ましくないものです。

レプリケーション係数が高いほど復元力が向上しますが、行の可用性を決定する主なパラメーターは、実際には整合性レベル(クエリ固有)です。

書き込み要求の場合、任意の整合性レベルは、行に対して選択されたターゲットが欠落している場合でも、クラスターを一種の要求にします(後で書き込みをコミットするためにヒント付きハンドオフを使用しようとするため)。

5
alxgomz

ノードがどのように削除されるかを教えてくれませんでした。nodetoolコマンドを使用すると、ノード上のデータが削除される前に他のノードに送信されます。したがって、データを保持します。

http://wiki.Apache.org/cassandra/Operations#Removing_nodes_entirely を参照してください。

ノードがクラッシュした場合:

  • 読み取り要求の場合、データは失われます
  • 書き込み要求の場合:
    • ネットワーク障害などの短い問題の場合、クラスター(各要求のコーディネーター)は、HintedHandoff機能を使用して、このノードのデータが再表示されるまで処理します。
    • 長期的または永続的な問題については、クラスターを再編成して、正しい方法で1/Nを再度確保する必要があります。 http://wiki.Apache.org/cassandra/Operations#For_versions_1.2.0_and_above を参照してください。
2
bltcrew