Note on Generalized Cuckoo Hashing with a Stash
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 rehash. It has since become a standard technique in areas such as cryptography, where a superpolynomially low probability of rehash is often required. Another extension of cuckoo hashing is to allow multiple items per bucket, improving the load factor. That extension was also analyzed by Kirsch et al. in the presence of a stash. The purpose of this note is to repair a bug in that analysis. Letting d be the number of items per bucket, and s be the stash size, the original claim was that the probability that a valid cuckoo assignment fails to exist is O(n^(1-d)(s+1)). We point to an error in the argument, and show that it is Θ(n^-d-s).
READ FULL TEXT