English

Balanced Allocations and Double Hashing

Data Structures and Algorithms 2014-01-30 v4 Distributed, Parallel, and Cluster Computing Discrete Mathematics

Abstract

Double hashing has recently found more common usage in schemes that use multiple hash functions. In double hashing, for an item xx, one generates two hash values f(x)f(x) and g(x)g(x), and then uses combinations (f(x)+kg(x))modn(f(x) +k g(x)) \bmod n for k=0,1,2,...k=0,1,2,... to generate multiple hash values from the initial two. We first perform an empirical study showing that, surprisingly, the performance difference between double hashing and fully random hashing appears negligible in the standard balanced allocation paradigm, where each item is placed in the least loaded of dd choices, as well as several related variants. We then provide theoretical results that explain the behavior of double hashing in this context.

Keywords

Cite

@article{arxiv.1209.5360,
  title  = {Balanced Allocations and Double Hashing},
  author = {Michael Mitzenmacher},
  journal= {arXiv preprint arXiv:1209.5360},
  year   = {2014}
}

Comments

Further updated, small improvements/typos fixed

R2 v1 2026-06-21T22:10:14.703Z