在做partition时,hash计算的k值是哪个?是token的最小倍数吗?就是做hash时,总会与一个固定值做取模运算,这个partition key做完hash是跟机器数取模吗?
他只把你指定的pk 的那个或者几个列的value 做hash基于你集群配置的partitioner计算hash,算的值是在tokens们的范围内。引入 vnode, 就是把一个物理节点 拆成了多个 虚拟节点。在增加或减少节点时,有加vnode的时候实际上是加一个节点,只会与你加进去的那个range的相邻几个交互下,但是一般用init_token建议指数扩容,所以生产环境会与多个节点交互。 但是vnode的话,实际上按照概率说是会与大多节点交互,拖数据。也就是说在那个图上,每个节点负责与它逆时针相临节点间的数据。vnode的话,理论会变,因为你计算的vnode是随机的,你保证不了这个new token会不会与前面的节点重合。https://www.datastax.com/dev/blog/virtual-nodes-in-cassandra-1-2
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。