论文标题
DHASH:启用动态和高效的哈希表
DHash: Enabling Dynamic and Efficient Hash Tables
论文作者
论文摘要
给定指定的平均负载因子,哈希表提供了持续时间查找操作的吸引力。但是,由于恶意攻击,越野车甚至传入的数据爆发,哈希表可能会面临严重的哈希碰撞,从而损害了这一实际优势。在本文中,我们提出了Dhash,这是一张哈希表,可以通过允许程序员动态地移动其哈希功能,而不会影响其他并发操作,例如查找,插入和删除,从而克服了这一挑战。 DHASH是模块化的,允许程序员选择各种无锁/无锁定设置算法作为哈希表存储桶的实现。有了这种灵活性,他们可以在算法的进度保证,绩效和工程工作之间进行权衡,并创建最满足其需求的DHASH实施。对三种架构的评估表明,Dhash在大量工作量下明显优于其他实际替代方案。 Dhash的负载系数为20,以1.4-2.0的因素优于其他三个最广泛使用的哈希表,而当负载系数增加到200时,Dhash的速度是2.3-6.2倍。
Given a specified average load factor, hash tables offer the appeal of constant time lookup operations. However, hash tables could face severe hash collisions because of malicious attacks, buggy applications, or even bursts of incoming data, compromising this practical advantage. In this paper, we present DHash, a hash table that overcomes this challenge by allowing programmers to dynamically change its hash function on the fly, without affecting other concurrent operations such as lookup, insert, and delete. DHash is modular and allows programmers to select a variety of lock-free/wait-free set algorithms as the implementation of hash table buckets. With this flexibility, they can make trade-offs between the algorithm's progress guarantee, performance, and engineering efforts, and create DHash implementations that meet their requirements best. Evaluations on three types of architectures show that DHash noticeably outperforms other practical alternatives under heavy workloads. With a load factor of 20, DHash outperforms the other three most widely used hash tables by factors of 1.4-2.0, and when the load factor increases to 200, DHash is 2.3-6.2 times faster.