JumpBackHash:告别取模运算以将键均匀分布到桶中
数据结构与算法
2025-11-11 v3 数据库
分布式、并行与集群计算
摘要
引言。分布式数据处理和存储系统需要高效的方法将键分布到各个桶中。传统的基于取模的映射虽然简单且快速,但在桶数量发生变化时并不稳定,会导致网络或数据库请求等系统资源利用率出现峰值。一致性哈希算法最小化了重新映射,但它们要么速度明显较慢,要么需要浮点运算,要么基于标准库中极少提供的哈希函数族。本工作引入了 JumpBackHash,一种克服了这些缺点的一致性哈希算法。方法。JumpBackHash 应用了借鉴自一致性加权抽样的活跃索引概念,这从本质上保证了一致性。它以逆序生成活跃索引,从而避免了浮点运算,使得消耗的随机值最小化并允许使用标准伪随机生成器,最终形成了一个非常高效的算法。结果。理论分析表明 JumpBackHash 具有期望常数运行时间。消耗随机值数量的期望值和方差与实验完美吻合。实证测试也证实了其一致性。结论。JumpBackHash 为在分布式系统中将键均匀分布到桶中提供了一种快速且高效的解决方案。其简单性、高性能以及作为 Hash4j 开源库一部分的生产就绪 Java 实现,使其成为替代基于取模方法的可行方案,以改善分配和系统稳定性。
关键词
引用
@article{arxiv.2403.18682,
title = {JumpBackHash: Say Goodbye to the Modulo Operation to Distribute Keys Uniformly to Buckets},
author = {Otmar Ertl},
journal= {arXiv preprint arXiv:2403.18682},
year = {2025}
}
备注
17 pages, 3 figures