【问题标题】:How does Cassandra re-assign partitions?Cassandra 如何重新分配分区?
【发布时间】:2016-10-14 13:16:17
【问题描述】:

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

【问题讨论】:

    标签: cassandra cassandra-2.0


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2018-05-17
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 2015-06-21
      • 1970-01-01
      • 2016-02-23
      • 1970-01-01
      相关资源
      最近更新 更多