1

Cassandra クラスターがあり、サイズ変更時のスループットの向上を評価するために、そこにノードを追加および削除しようとしました。問題は、ノードの追加コマンドと削除コマンドを実行した後 (また、nodetool でクリーンアップを試みました)、次の例外が発生するため、2 つのノードを追加できないことです。

java.lang.IllegalStateException: unable to find sufficient sources for streaming range

そしてcassandra binがハングします.. cassandraがどのように機能するかについては完全にはわかりません.

ありがとうございました

編集:

私のクラスターのレプリケーション係数は 1 で、合計で 10 個のノードがあります (1 つのシードノード、7 つの動作ノード、2 つのハング ノード - 今のところ)

4

1 に答える 1

1

データを挿入してからノードの削除に進むと、レプリケーション ファクター (RF) が低すぎると、クラスターからデータが完全に削除されます。なんで?Cassandra は (RF が低いため) どのノードにもデータをコピーしておらず、削除されたノードはそのデータを一意に保存したためです。

問題をより視覚的に捉えます。

RF = 1
Each node stores 25% of the data
Total dataset = [node1, node2, node3, node4]

ノード 2 を削除すると、合計データの 75% が得られます。低 rf + ノードの削除 = データ損失のためです。このソースは、完全なデータセットが得られなくなる前に、どれだけのノードを失うことができるかをワークアウトする簡単な方法です。

すべてのデータを削除するか、データがあったノードを再導入する必要があります。私のアドバイスは、複製係数を増やすことです。

于 2013-10-06T08:16:20.467 に答える