开发者社区> 问答> 正文

在做partition时,hash计算的k值是哪个?

在做partition时,hash计算的k值是哪个?是token的最小倍数吗?就是做hash时,总会与一个固定值做取模运算,这个partition key做完hash是跟机器数取模吗?

展开
收起
被纵养的懒猫 2019-09-12 10:08:11 933 0
1 条回答
写回答
取消 提交回答
  • 他只把你指定的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

    2019-09-12 10:08:29
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载