Cassandra虚拟节点

弗拉基米尔·纳博科夫(Vladimir Nabokov)

尽管它被问了很多遍并且回答了很多遍,但是我还是没有找到一个好的答案。在论坛和cassandra文档中都没有。

虚拟节点如何工作?

假设一个节点具有256个虚拟节点。文档说它们是随机分布的。(丢弃“随机”的操作方式...我还有另一个更紧急的问题):

  1. 每个卡桑德拉节点(“物理”)实际上负责环中几个不同的位置,对吗?(针对256个地点)?这是否意味着整个圆周上的“物理”节点都“扩散”了?

  2. 在这种情况下,重新平衡如何工作?如果我添加一个新节点?环将获得额外的256个节点。这些额外的节点如何将数据与旧节点分开?从根本上说,它们会不会出现为随机散布在整个环上的其他“自行车辐条”?

互联网上有很多信息,但没有人做出明确的解释...

LetsNoSQL

Vnode将可用令牌的范围划分为较小的范围,这由cassandra.yaml文件中的num_tokens设置定义。vnode范围在整个集群中随机分布,并且通常是不连续的。如果我们对num_tokens使用大量数字以破坏令牌范围,则随机分布意味着我们不太可能出现热点。使用统计计算,所有大小的所有群集始终具有良好令牌范围平衡的点是当使用256个vnode时。因此,社区建议num_tokens默认值为256,以防止群集中出现热点。

回答1:-这是基于num_tokens的一系列令牌。如果您设置了256,则将获得256个令牌范围,这是默认值。

回答2:-是的,当您添加或删除节点时,令牌将基于vnodes配置在群集中再次分发。

您可以在这里参考更多详细信息https://docs.datastax.com/en/ddac/doc/datastax_enterprise/dbArch/archDataDistributeVnodesUsing.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章