Cassandra Vnodes和令牌范围

San*_* Km 4 cassandra

我知道Vnodes通过在cassandra.yaml文件中设置num_tokens为每个节点形成许多令牌范围.

比如说(a),我有6个节点,每个节点我都设置了num_token = 256.在这6个节点中形成了多少个虚拟节点,即每个物理节点中包含多少虚拟节点或子令牌范围.

根据我的理解,当每个节点都将num_token指定为256时,则表示所有6个节点各包含256个vnode.这个陈述是真的吗?如果没有那么,vnodes如何形成每个节点中的标记范围(显然是随机的).如果有人可以用(a)中提到的例子解释我,那将是非常方便的.

什么是Vnodes的戒指在这个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)

Ode*_*eer 8

使用MurMur3散列函数将Cassandra中的每个分区键转换为数字标记值.令牌范围介于-2 ^ 63到+ 2 ^ 63 -1之间.num_token定义为节点分配的令牌范围数.这与签名的java long相同.每个节点计算令牌范围内的256个(num_tokens)随机值,并通知其他节点它们是什么,因此当节点需要协调对特定令牌的请求时,它根据复制因子和DC知道哪些节点负责它. /机架放置.对此功能的更好描述将是"自动令牌范围分配以获得更好的流功能",称其为"虚拟"有点令人困惑.在您的情况下,您有6个节点,每个节点设置256个令牌范围,因此您有6*256个令牌范围,每个心理节点包含256个令牌范围.

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