Cassandra Vnodes和令牌范围

问题描述:

我知道Vnodes通过在cassandra.yaml文件中设置num_tokens来为每个节点形成许多令牌范围。例如(a),我有6个节点,每个节点我都设置了num_token = 256。这6个节点中形成了多少个虚拟节点,即每个物理节点中包含多少个虚拟节点或子令牌范围。Cassandra Vnodes和令牌范围

根据我的理解,当每个节点将num_token分配为256时,这意味着所有6个节点都包含256个vnode。这个陈述是真实的吗?如果不是那么,vnodes如何在每个节点中形成令牌范围(显然是随机的)。如果有人可以用(a)所述的例子解释我,那将非常方便。

是什么的vnode环表示在此URL:=>http://docs.datastax.com/en/cassandra/3.x/cassandra/images/arc_vnodes_compare.png(摘自:http://www.datastax.com/dev/blog/virtual-nodes-in-cassandra-1-2

在卡桑德拉每个分区键被转换为使用MurMur3散列函数的数值令牌值。令牌范围介于-2^63到+2^63之间012_num_token定义向节点分配多少令牌范围。每个节点计算令牌范围内的256个随机值(num_tokens),并通知其他节点它们是什么,因此当节点需要协调对特定令牌的请求时,它会根据复制因子和DC来知道哪些节点负责它/机架放置。 对此功能的更好的描述是“自动令牌范围分配以获得更好的流式传输能力”,称其为“虚拟”有点混乱。 在你的情况下你有6个节点,每个节点有256个令牌范围,所以你有6 * 256令牌范围,每个心理节点包含256个令牌范围。

例如,考虑设置为4和令牌范围0到100 节点1 num_tokens 2个节点计算令牌17,35,77,92 节点2来计算令牌4,25,68,85 环示出了在这种情况下令牌范围的分布 节点2负责令牌范围4-17,25-35,68-77,85-92和其余节点1。

+0

对于node2的范围,应该有4-16,25-34 68-76和85-92吗? – Southsouth

+0

这将是射频1权利? RF2和三个节点呢?您需要复制令牌范围。随机听起来有点疯狂,因为你不能确保令牌范围被复制。或者是隐式统一唯一覆盖的令牌范围,并且复制的处理方式不同? –

+0

@ConstanceEustace令牌分配不依赖于RF。副本放置取决于您的复制策略,请阅读更多信息 - https://docs.datastax.com/en/cassandra/latest/cassandra/architecture/archDataDistributeReplication.html –