Cassandra如何重新分配分区?

时间:2016-06-14 00:46:26

标签: cassandra cassandra-2.0

说,我们有一个包含2个节点的Cassandra集群。带有键范围[A-D]的数据将插入到群集中。粗略地说,我们可以假设节点1存储具有密钥范围[A-B]的数据,而节点2存储具有密钥范围[C-D]的数据。一段时间后,我们再添加2个节点。为了平衡,应该重新分配分区,对吧?我们现在期望每个节点存储恰好1个密钥的数据。 Cassandra是否重新分配然后将现有数据移动到新节点(例如,具有从节点1到节点3的密钥B的现有数据)?怎么样?

1 个答案:

答案 0 :(得分:0)

默认情况下

Cassandra uses vnodes or virtual nodes。每个节点没有一个单一范围(即[A-C]),但有数百个(默认情况下为256,num_tokens中为cassandra.yaml)。根据您的版本,这些令牌范围是随机分配的,或者是在分发的早期版本中分配,以最大限度地平这样,如果一个节点出现故障或添加节点,则群集中的所有节点都将紧邻其中一个节点范围以分担负担。