Hash 一致性算法

应用在 数据库分库 等领域:

如果我们采用取余 或者 普通hash的话.

再一次增加一台机器的过程中, 会导致大面积数据迁移问题.要不然就会出现入库不平均.

consistent hashing 就是为了解决这个问题的.

初始分配:

prepare

将所有机器通过hash算法分布在一个2^32次方的一个圆环上.

当每一次入库的时候.都会根据hash值分配到离自己最近的机器上.

新增机器后的分配策略:

new machine

新增机器只需要移动一台机器的数据就好,不需要影响全局机器.

这样就解决了所谓分库的问题. 至于为什么是2^32.. 其实这个可以是任何数.. 足够大就好. 当然相应算法要自己调整.

ps: 本图片链接自我的iteye blog. 原图扒自一篇翻译的consistent hashing的翻译论文. 原谅我当时没有做记录是哪一篇. 翻译作者可以联系我.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值