技术分享 | Jump Consistent Hash 原理解析(上篇)

本文深入探讨了一致性哈希中的跳跃法原理,对比取模法,跳跃法在节点变更时仅需移动少量数据,避免了全部洗牌现象。通过数学归纳法和随机数种子,实现了数据在多个节点间的均匀分布。文章还预告了优化性能的对数级复杂度方法。

作者:傅文辉

之前爱可生开源社区公众号发表了dble 沿用 jumpstringhash,移除 Mycat 一致性 hash 原因解析, 阐述了跳跃法相对环割法的性能优势。很多读者表示对其中"跳跃法的原理"不是很理解,本文就来详细阐述一下。

一致性哈希

首先,我们的需求是,将数据(key-value pair)分布在多个节点上。这点可以简单的用取模实现,

节点 key
1 1 4 7 10
2 2 5 8 11
3 3 6 9 12

然而,当增加新节点时,数据将发生大规模转移:

节点 key
1 (1) 5 9
2 (2) 6 10
3 (3) 7 11
4 4 8 12

一致性哈希的主要目的是,在节点数量发生变更时,只需要在节点间移动少量数据,而不是"全部洗牌"。

除了经典的环割法一致性哈希外,Google

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值