2017-11-05 4 views
0

私は3ノードのCassandra(DSE)クラスターを持っています。データの損失は気にしませんので、RFを1に設定しました。ノードがダウンすると、Cassandraが読み取り/書き込み要求にどのように応答するのだろうか私の要求にはCL = ALLが必要です)。Cassandraレプリケーションファクタ1でノード障害を管理するにはどうすればよいですか?

データが存在する場合、理想的には、これらの要求が成功することを望んでいます。つまり、デッドノードを置き換えるまで残りの使用可能なノードだけです。このキースペースは基本的には本当に巨大なキャッシュです。私は損失の場合のデータのいずれかを置き換えることができます。

答えて

4

(免責事項:私はScyllaDBの社員だ)RF = 1を使用しているとき、あなたのパーティションキーを想定し

はあなたの3つのノードのそれぞれは、あなたのデータの1/3を含んで、十分にユニークでした。 BTWでは、この場合、CL = ONE/ALLは基本的にデータ用のレプリカが1つだけで、高可用性(HA)はありません。

2つのノードからの「既存の」データの要求は成功します。それでも、3ノードの1つがダウンしている場合、ダウンしたノードが現れるまで、基本的に1/3のデータが利用できないため、クライアント要求の1/3が成功しません(nodetool repair RF = 1を使用している場合は意味がありません)、スナップショットから復元することが唯一の選択肢だと思います。

ノードがダウンしている間に、nodetool decommissionを実行すると、トークンの範囲は2つのノードの間で再分配されますが、新しい書き込みと読み取りの場合にのみ適用されます。 http://docs.scylladb.com/architecture/ringarchitecture/

+0

ありがとう:

あなたはここにリングアーキテクチャについての詳細を読むことができます!したがって、ノードがダウンすると、そのトークン空間からクエリを実行する前に、そのノードを置き換える必要があります。 – asuna

+0

@asuna - はい、そうです。そのトークン範囲から照会することはできますが、復元するスナップショットがない限りデータは失われます。 – LHWizard

関連する問題