Ludo Hashing: Compact, Fast, and Dynamic Key-value Lookups for Practical Network Systems
Appeared in Proc. of ACM SIGMETRICSÂ 2020.
Abstract
Key-value lookup engines running in fast memory are crucial components of many networked and distributed systems such as packet forwarding, virtual network functions, content distribution networks, distributed storage, and cloud/edge computing. These lookup engines must be memory-efficient because fast memory is small and expensive. This work presents a new key-value lookup design, called Ludo Hashing, which costs the least space (3.76 + 1.05l bits per key-value item for l-bit values) among known compact lookup solutions including the recently proposed partial-key Cuckoo and Bloomier perfect hashing. In addition to its space efficiency, Ludo Hashing works well with most practical systems by supporting fast lookups, fast updates, and concurrent writing/reading. We implement Ludo Hashing and evaluate it with both micro-benchmark and two network systems deployed in CloudLab. The results show that in practice Ludo Hashing saves 40% to 80%+ memory cost compared to existing dynamic solutions. It costs only a few GB memory for 1 billion key-value items and achieves high lookup throughput: over 65 million queries per second on a single node with multiple threads
Publication date:
June 2020
Authors:
Shouqian Shi
Chen Qian
Projects:
Available media
Full paper text:
PDF
Presentation:
video
Bibtex entry
@inproceedings{Ludo-hashing, author = {Shouqian Shi and Chen Qian}, title = {Ludo Hashing: Compact, Fast, and Dynamic Key-value Lookups for Practical Network Systems}, booktitle = {Proc. of ACM SIGMETRICSÂ 2020}, month = jun, year = {2020}, }