一致性哈希和取模哈希的问题
来源:互联网 发布:岳阳蔬菜网络销售 编辑:程序博客网 时间:2024/05/21 00:17
今天在mycat那本书上看到一段话,很不是了解
当使用一致性Hash进行路由分片时,假设存在节点宕机/新增节点这种情况,那么相对于使用其他分片算法(如mod),就能够尽
可能小的改变已存在key映射关系,尽可能的减少数据迁移操作。当然一致性hash也有一个明显的不足,假设当前存在三个节点
A,B,C,且是使用一致性hash进行分片,如果你想对当前的B节点进行扩容,扩容后节点为A,B,C,D,那么扩容完成后数据分布就
会变得不均匀。A,C节点的数据量是大于B,D节点的。
据测试,分布最均匀的是mod,一致性哈希只是大致均匀。数据迁移也是,迁移量最小的做法是mod,每次扩容后节点数都是2
的N次方,这样的迁移量最小。但是mod需要对每个节点都进行迁移,这也是mod的不足之处。总之,还得酌情使用,根据业务
选择最适合自己系统的方案。
问题1
为什么扩容后A,C节点的数据量是大于B,D节点的。
我觉得扩容后只会把a c节点的一部分数据迁移到b d 节点,只会少不会多啊。
问题2
为什么分布最均匀的是mod
均不均匀不是取决于哈希算法和哈希因子吗,
问题3 为什么迁移量最小的做法是mod
回复芋智波佐助:问题1,一致性哈希是一个环,这里估计作者是考虑B节点上面的虚拟节点是热点,把B节点的某些虚拟节点迁移到了D,这样从虚拟节点看,AC的虚拟节点个数大于BD。问题2,只要哈希算法够好,分布最好的肯定是哈希算法,一致性哈希很容易出现热节点(因为不同节点上的虚拟节点连续)问题3,:从数据量上看,2的n次方迁移,数据量期望最小,但是迁移数据的节点多。一致性哈希需要迁移的数据节点少,但是数据量一般会比较大(迁移虚拟节点)
- 一致性哈希和取模哈希的问题
- 一致性哈希的学习和理解
- 一致性哈希算法问题
- 某分布式应用实践一致性哈希的一些问题
- 某分布式应用实践一致性哈希的一些问题
- 分布式系统一致性问题和一致性算法
- “分布式哈希”和“一致性哈希”的概念…
- 分类的一致性问题
- cache一致性的问题
- 一致性哈希的浅析
- DMA和cache一致性问题
- DMA和cache一致性问题
- DMA和cache一致性问题
- 分库分表带来的完整性和一致性问题
- 分库分表带来的完整性和一致性问题
- 分库分表带来的完整性和一致性问题
- 分库分表带来的完整性和一致性问题
- 分库分表带来的完整性和一致性问题
- java 导出excel(POI)
- 中国航天科工开展了 “高速飞行列车”的研究论证
- Nodejs进阶:使用DiffieHellman密钥交换算法
- [js高手之路]设计模式系列课程-发布者,订阅者重构购物车
- Tomcat Manager用户配置
- 一致性哈希和取模哈希的问题
- CURL error 60:
- 【C#】简单的消息管理机制
- linux在局域网下设置时间同步
- 简单的点击链接隐藏与显示div
- ajax 跨域访问java 带请求头
- 去掉标题栏,全屏
- Linq语法入门
- python发邮件的使用方法!