gpt4 book ai didi

cassandra - Vnodes 在 Cassandra 中的意义

转载 作者:行者123 更新时间:2023-12-01 08:52:29 25 4
gpt4 key购买 nike

来自网址:http://www.datastax.com/dev/blog/virtual-nodes-in-cassandra-1-2 , 他们说:

“如果相反,我们将随机化的 vnode 分布在整个集群中,我们仍然需要传输相同数量的数据,但现在它分布在集群中所有机器上的更多小范围内。这使我们能够重建节点比我们每个节点的单一 token 方案更快。”

上面的句子似乎表明,当我们用具有相同 num_tokens 的新节点替换一个死节点(比如 num_tokens:4)时,被替换的节点包含与死节点在释放这些标记值之前相同的标记值。

但是Vnodes会为每个节点生成随机的token值,那么怎么可能用相同的Vnodes token值替换一个节点呢?

该 URL 在解释使用 VNODES 概念用新节点替换死节点的概念时似乎令人困惑。如果有人能澄清如何使用 Vnode 来用精确的 token 值范围替换死节点,那就太好了。

提前致谢。

最佳答案

一、vnode参数 num_tokens 应该设置为一个较小的数字,DataStax 当前的建议是八 (8)。最初的默认值是 256,经验发现它太高了。

对于传统的 token 范围,您只有与节点一样多的范围。但是,使用 vnodes, token 范围的数量被虚拟化并且更大。您不能在同一数据中心(环)中混合使用 vnode 和 token 范围。

token 范围的节点故障:

enter image description here

在上面带有标记范围的 DataStax 示例中,范围 C、D 和 E 的数据仅驻留在三个节点上:

  • 范围 C 归节点 3 所有,并在节点 4 和 5 上复制
  • 范围 D 归节点 4 所有,并在节点 5 和 6 上复制
  • 范围 E 归节点 5 所有,并复制到节点 6 和 1

  • 在此示例中,当节点 5 发生故障时,范围 C、D 和 E 仅从其余五个节点中的三个节点重新加载和流式传输:1、3 和 4。节点 2 没有节点 5 和节点 6 的任何数据具有由节点 1 流式传输的相同数据。因此,节点 2 和 5 在重建期间处于空闲状态。

    Vnodes 的节点故障:

    然而,当使用 vnodes 时, token 范围被分成更小的范围并在整个 6 个节点的集群中随机化。对于较小的范围,节点 5 的一部分数据被复制到其他节点中的每一个。

    enter image description here

    重建节点 5 时,现在可以从集群中的所有 5 个可用节点流式传输数据。

    vnodes 的主要优点是:
  • 添加或删除节点时不再需要手动重新平衡集群
  • 重建可以从所有可用节点流式传输数据
  • 关于cassandra - Vnodes 在 Cassandra 中的意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38423888/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com