DHash: Enabling Dynamic and Efficient Hash Tables

06/01/2020
by   Junchang Wang, et al.
0

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.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset