0

cassandraを初めて使用しました。2ノードCASandraクラスタで、RF = 1でノードが1つダウンしていると、CL = 1で書き込みできますが、読み取ることはできません。

私は2つのノードを含むクラスタを持っています。レプリケーションファクタを1に設定しました.1つのノードがダウンすると、エラーなしのデータをConsistency = ONEで挿入できます。私は同じことをTADしようとした場合、挿入した後、それは私にカサンドラは、コーディネータノードからデータを読んでいないのはなぜエラー

Unavailable: code=1000 [Unavailable exception] message="Cannot achieve consistency level ONE" info={'required_replicas': 1, 'alive_replicas': 0, 'consistency': 'ONE'} 

を与えますか? 1つのノードがUPの場合、alive_replicasは1にする必要がありますか?

私はcqlshクライアントを使用しています。

答えて

1

複製係数が1の場合は、すべてのデータが1回だけ存在することを意味します(追加コピーの数ではなく、コピーの総数)。 2つのノードとRF = 1のクラスタを持つ場合、データのおよそ50%はnode1にあり、残りの半分はnode2に存在します。

あなたはあなたのノードの一つがダウンしている場合、そのキーのみがライブノードに格納されているアクセス可能な、

nodetool status your_keyspace_name 

(列を所有下のパーセンテージを確認してください)コマンドでこれを確認することができます。これは、読み取りと書き込みの両方に適用されます。したがって、ライブノードに影響を与える操作は成功し、死んだノードに影響を与える操作は失敗します。あなたはだからあなたの質問に答えるために

nodetool getendpoints your_keyspace your_table your_key 

コマンドを使用して、任意のパーティション・キーを担当するノードをチェックすることができ、私は失敗し、読み取りがダウンしたノードに影響を与えながら、成功した書き込みは、ライブノードに影響を与えたとします。

関連する問題