解决方案
一致性哈希解决了一个真实的分布式系统问题:当桶被添加或移除时,避免重新映射每一个键。但通常的 Karger 式环带有运维负担:虚拟节点、存储,以及需要调优消除的不均衡。
Lamping 和 Veach 的跳跃一致性哈希提出了一个更窄的问题:如果桶按顺序编号,能否在不存储任何环的情况下计算出键的目标位置?他们的答案大约只有五行代码。
arXiv 论文称,该方法不需要存储,比 Karger 等人的算法更快,并且在桶数量变化时能更均匀地划分键空间和工作负载。它的权衡是明确的:顺序桶编号使其更适合存储场景,而不是任意的 Web 缓存成员关系。
它实现了什么
直接跳到最后一个桶变更
为什么有效
限制为顺序桶 ID 消除了对成员环的需求。
最小重映射源自跳跃过程:只有当新增的桶赢得某个键时,该键才会移动。
没有查找表意味着没有需要重建或分发的内存占用。
这一局限既诚实又有用:该技巧更适合存储分片,而不是易变的缓存集群。
可以应用什么
如果一个数据结构主要为了保持某种概率规律而存在,有时可以直接对该规律进行采样,而让该结构消失。
后续影响
跳跃一致性哈希成为分片存储、数据库和库的一个紧凑选项,这些场景需要以极小的实现成本实现稳定的放置。它的优雅之处在于约束:放弃任意桶名称,整个环就消失了。
从这里,追溯依据
参考来源
- A Fast, Minimal Memory, Consistent Hash Algorithm arXiv · arxiv.org ·