When it comes to hash tables, the only truly respectable insertion time is $O(1)$, possibly qualified as expected and/or amortised. While insertions into cuckoo hash tables indeed seem to take $O(1)$ expected time in practice, only polylogarithmic guarantees are proven in all but the simplest of practically relevant cases. Given the widespread use of cuckoo hashing to implement compact dictionaries and Bloom filter alternatives, closing this gap is an important open problem for theoreticians. In this paper, we show that random walk insertions into cuckoo hash tables take $O(1)$ expected amortised time when any number $k \geq 3$ of hash functions is used and the load factor is below the corresponding peeling threshold (e.g. $\approx 0.81$ for $k = 3$). To our knowledge, this is the first meaningful guarantee for constant time insertion for cuckoo hashing that works for $k \in \{3,\dots,9\}$. In addition to being useful in its own right, we hope that our key-centred analysis method can be a stepping stone on the path to the true end goal: $O(1)$ time insertions for all load factors below the load threshold (e.g. $\approx 0.91$ for $k = 3$).
翻译:当涉及到散列表格时,唯一真正值得尊重的插入时间是O(1)美元,可能符合预期和(或)摊销条件。虽然在库库散列表格中插入时实际上似乎确实需要O(1)美元的预期时间,但只有多式保证在所有情况下都得到证明,但最简单的是实际相关的案例。鉴于广泛使用库库散列来实施压缩词典和布卢姆过滤器替代品,缩小这一差距对于理论学家来说是一个重要的开放问题。在本文中,我们显示在库库散列表格中随机的步行插入需要O(1)美元的预期摊销时间。在使用任何数 $k\geq 3 的散列函数时,且负载系数低于相应的剥离阈值(例如$\ approx 0.81美元 美元= 3美元)。对于我们的知识来说,这是为 cuckoo 持续插入时间的第一个有意义的保证,在 $k\ 3,\ dots,9\\\\\$。除了在其本身右方值中有用外,我们希望我们的关键核心分析方法能够进入真正的时间路径。