[论文解读] DxHash: A Scalable Consistent Hash Based on the Pseudo-Random Sequence
DxHash 是一种可扩展的无状态一致性哈希算法,基于伪随机序列,实现了近乎最优的负载均衡、最小的扰动、高查询吞吐量(1330万次/秒)、低内存占用(0.125n 至 5n 字节)以及高效的更新开销。它通过可调的伪随机生成器支持动态扩展和加权负载分发,在六项关键指标上均优于现有最先进方法。
Consistent hashing (CH) has been pivotal as a data router and load balancer in diverse fields, including distributed databases, cloud infrastructure, and peer-to-peer networks. However, existing CH algorithms often fall short in simultaneously meeting various critical requirements, such as load balance, minimal disruption, statelessness, high lookup rate, small memory footprint, and low update overhead. To address these limitations, we introduce DxHash, a scalable consistent hashing algorithm based on pseudo-random sequences. To adjust workloads on heterogeneous nodes and enhance flexibility, we propose weighted DxHash. Through comprehensive evaluations, DxHash demonstrates substantial improvements across all six requirements compared to state-of-the-art alternatives. Notably, even when confronted with a 50% failure ratio in a cluster of one million nodes, DxHash maintains remarkable processing capabilities, handling up to 13.3 million queries per second.
研究动机与目标
- 解决现有一致性哈希算法在负载均衡、最小扰动、无状态性、高查询吞吐量、低更新开销和小内存占用之间难以同时满足的权衡问题。
- 设计一种在极端条件下(如100万节点集群中50%节点故障)仍能保持高性能的一致性哈希方案。
- 在保持一致性和性能的前提下,支持动态集群扩展与收缩以及加权负载分发。
- 提供一种实用的开源实现,支持在云存储和对等网络等分布式系统中的实际部署。
提出的方法
- DxHash 使用确定性的伪随机序列生成器将键映射到节点,确保无状态且一致的键到节点映射。
- 通过迭代哈希动态选择候选节点,相比基于查表的方法(如 Maglev 或 SACH),显著降低了内存使用。
- 该算法支持标准哈希与加权哈希:加权 DxHash 为不同节点分配不同权重,以按比例控制负载分发。
- 更新操作(节点增加/删除)通过仅重新计算受影响的键映射来高效处理,利用伪随机序列最小化扰动。
- 查找时间复杂度为 O(n/a),其中 n 为节点总数,a 为活跃节点数,即使在高故障率下也能保持高性能。
- 内存占用在 n/8 至 5n 字节之间,显著低于 Maglev(4m)和 SACH(4m),同时保持高吞吐性能。
实验结果
研究问题
- RQ1能否设计一种一致性哈希算法,同时实现近乎最优的负载均衡、最小扰动、无状态性、高查询吞吐量、低更新开销和小内存占用?
- RQ2在极端节点故障场景下(如100万节点集群中50%节点故障),DxHash 的表现如何?
- RQ3DxHash 是否能在保持高性能和低重映射开销的前提下,支持动态集群扩展与收缩?
- RQ4加权 DxHash 是否能实现与节点权重成比例的精确、可量化的负载分发?
- RQ5与 Maglev、SACH 和 AnchorHash 等最先进算法相比,DxHash 在性能和内存效率方面表现如何?
主要发现
- 即使在100万个节点中50%的节点发生故障的情况下,DxHash 仍能实现峰值1330万次/秒的查询吞吐量,展现出卓越的容错能力。
- 在100万个节点的集群中,仅10%节点处于活跃状态时,DxHash 的查询速率仍达435万次/秒,相较于 AnchorHash 在低活跃比例下性能提升超过100倍。
- 加权 DxHash 的负载分发误差在理论预期的0.1%以内,证实了其对基于节点权重的工作负载分发具有精确控制能力。
- DxHash 的内存占用介于 n/8 至 5n 字节之间,显著低于 Maglev(4m)和 SACH(4m),同时保持 O(n/a) 的查找复杂度。
- DxHash 的收缩操作通过动态调整集群的上界,提升了查找性能,增加了活跃节点比例并减少了搜索长度。
- DxHash 在插入和删除操作中均为无状态,无需维护历史操作顺序,从而降低了内存访问开销。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。