English

Generalized Cuckoo Hashing with a Stash, Revisited

Data Structures and Algorithms 2023-01-03 v2

Abstract

Cuckoo hashing is a common hashing technique, guaranteeing constant-time lookups in the worst case. Adding a stash was proposed by Kirsch, Mitzenmacher, and Wieder at SICOMP 2010, as a way to reduce the probability of failure (i.e., the probability that a valid Cuckoo assignment fails to exist). It has since become a standard technique in areas such as cryptography, where a negligible probability of failure is often required. We focus on an extension of Cuckoo hashing that allows multiple items per bucket, which improves the load factor. That extension was also analyzed by Kirsch \emph{et al.} in the presence of a stash. In particular, letting dd be the number of items per bucket, and ss be the stash size, Kirsch \emph{et al.} showed that, for constant dd and ss, the failure probability is O(n(s+1)(1d))\mathcal{O}(n^{(s+1)(1-d)}). In this paper, we first report a bug in the analysis by Kirsch \emph{et al.} by showing a counter-example leading to an asymptotically-larger probability of failure Ω(nds1)\Omega(n^{-d-s-1}). Then we provide a general analysis and upper bound of the failure probability for (almost) arbitrary dd and ss, instead of just constant, which is useful for applications in cryptography. We finally deduce from the general analysis a tight bound Θ(nds)\Theta(n^{-d-s}) for the probability of failure, for constants dd and ss.

Cite

@article{arxiv.2010.01890,
  title  = {Generalized Cuckoo Hashing with a Stash, Revisited},
  author = {Brice Minaud and Charalampos Papamanthou},
  journal= {arXiv preprint arXiv:2010.01890},
  year   = {2023}
}

Comments

11 pages, 0 figure. Updated version contains a new algorithmic result (Section 4)

R2 v1 2026-06-23T19:02:14.240Z