2016-06-14 9 views
0

2つのノードからなるカサンドラクラスターがあります。キー範囲[A-D]のデータがクラスタに挿入されます。おおまかに言えば、ノード1はキー範囲[A-B]のデータを格納し、ノード2はキー範囲[C-D]のデータを格納すると仮定できます。しばらくして、さらに2つのノードを追加します。バランシングのために、パーティションを再割り当てする必要があります。各ノードが正確に1つのキーのデータを格納することが期待されます。 Cassandraは既存のデータを新しいノードに移動しますか(たとえば、ノード1からノード3へのキーBの既存データ)?そしてどうやって?Cassandraはどのようにパーティションを再割り当てしますか?

答えて

0

Cassandra uses vnodes or virtual nodesデフォルトでは各ノードには単一の範囲(つまり[A-C])はありませんが、何百(256はデフォルトではnum_tokens、つまりcassandra.yaml)です。これらのトークン範囲は、ご使用のバージョンに応じてランダムまたは以前のバージョンで割り当てられ、均等な分布を最大にします。このようにして、1つのノードがダウンした場合、またはノードを追加すると、クラスタ内のすべてのノードがそのノードの1つの横になり、負担が分散されます。

関連する問題