Cassandra:谁 creates/distributes 节点中的虚拟节点 - 领导者?

Cassandra: Who creates/distributes virtual Nodes among nodes - Leader?

在 Cassandra 中,虚拟节点的创建和分布在 http://www.datastax.com/dev/blog/virtual-nodes-in-cassandra-1-2 中给出的节点之间。但是谁来做这个过程?创建虚拟节点,在对等点之间分配。它是某种领导者吗?它是如何工作的?

此外,如果有节点加入,则会重新分配虚拟节点。存在更多类似的操作。谁做所有这些?

编辑: 是不是当一个节点加入时,它从现有集群中占用了一部分虚拟节点从而消除了领导者的需要?

新节点使用种子节点检索有关集群的数据。

新节点将根据num_tokens参数(默认情况下它将在所有节点现有节点之间均匀分布)占据集群的一部分,并且bootstrap它是数据的一部分. 集群的其余部分将通过 "gossiping" - 使用 gossip 协议了解更改。

除了种子节点部分,过程中不需要任何"master"。

旧节点不会自动删除分区,需要在添加新节点后运行节点工具清理旧节点。

这是一篇关于它的好文章:

http://cassandra.apache.org/doc/latest/operating/topo_changes.html