License: Creative Commons Attribution 3.0 Unported license (CC BY 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.SEA.2020.7
URN: urn:nbn:de:0030-drops-120817
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2020/12081/
Köppl, Dominik ;
Puglisi, Simon J. ;
Raman, Rajeev
Fast and Simple Compact Hashing via Bucketing
Abstract
Compact hash tables store a set S of n key-value pairs, where the keys are from the universe U = {0,…,u-1}, and the values are v-bit integers, in close to B(u, n) + nv bits of space, where {b(u, n)} = log₂ binom(u,n) is the information-theoretic lower bound for representing the set of keys in S, and support operations insert, delete and lookup on S.
Compact hash tables have received significant attention in recent years, and approaches dating back to Cleary [IEEE T. Comput, 1984], as well as more recent ones have been implemented and used in a number of applications. However, the wins on space usage of these approaches are outweighed by their slowness relative to conventional hash tables. In this paper, we demonstrate that compact hash tables based upon a simple idea of bucketing practically outperform existing compact hash table implementations in terms of memory usage and construction time, and existing fast hash table implementations in terms of memory usage (and sometimes also in terms of construction time).
A related notion is that of a compact Hash ID map, which stores a set Ŝ of n keys from U, and implicitly associates each key in Ŝ with a unique value (its ID), chosen by the data structure itself, which is an integer of magnitude O(n), and supports inserts and lookups on Ŝ, while using close to B(u,n) bits. One of our approaches is suitable for use as a compact Hash ID map.
BibTeX - Entry
@InProceedings{kppl_et_al:LIPIcs:2020:12081,
author = {Dominik K{\"o}ppl and Simon J. Puglisi and Rajeev Raman},
title = {{Fast and Simple Compact Hashing via Bucketing}},
booktitle = {18th International Symposium on Experimental Algorithms (SEA 2020)},
pages = {7:1--7:14},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-95977-148-1},
ISSN = {1868-8969},
year = {2020},
volume = {160},
editor = {Simone Faro and Domenico Cantone},
publisher = {Schloss Dagstuhl--Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/opus/volltexte/2020/12081},
URN = {urn:nbn:de:0030-drops-120817},
doi = {10.4230/LIPIcs.SEA.2020.7},
annote = {Keywords: compact hashing, hash table, separate chaining}
}
Keywords: |
|
compact hashing, hash table, separate chaining |
Collection: |
|
18th International Symposium on Experimental Algorithms (SEA 2020) |
Issue Date: |
|
2020 |
Date of publication: |
|
12.06.2020 |
Supplementary Material: |
|
Implementations are available at https://github.com/koeppl/separate_chaining. Our benchmarks for the operations insert, lookup, and delete are available at https://github.com/koeppl/hashbench. |