Table of Contents
Fetching ...

Tight Bounds for Classical Open Addressing

Michael A. Bender, William Kuszmaul, Renfei Zhou

TL;DR

It is proved that this tradeoff curve is optimal: any classical open-addressed hash table that supports load factor $1-\varepsilon$ must incur $\Omega \left({log \,log{\varepsilon ^{ - 1}}} \right)$ expected time per operation.

Abstract

We introduce a classical open-addressed hash table, called rainbow hashing, that supports a load factor of up to $1 - \varepsilon$, while also supporting $O(1)$ expected-time queries, and $O(\log \log \varepsilon^{-1})$ expected-time insertions and deletions. We further prove that this tradeoff curve is optimal: any classical open-addressed hash table that supports load factor $1 - \varepsilon$ must incur $Ω(\log \log \varepsilon^{-1})$ expected time per operation. Finally, we extend rainbow hashing to the setting where the hash table is dynamically resized over time. Surprisingly, the addition of dynamic resizing does not come at any time cost -- even while maintaining a load factor of $\ge 1 - \varepsilon$ at all times, we can support $O(1)$ queries and $O(\log \log \varepsilon^{-1})$ updates. Prior to our work, achieving any time bounds of the form $o(\varepsilon^{-1})$ for all of insertions, deletions, and queries simultaneously remained an open question.

Tight Bounds for Classical Open Addressing

TL;DR

It is proved that this tradeoff curve is optimal: any classical open-addressed hash table that supports load factor must incur expected time per operation.

Abstract

We introduce a classical open-addressed hash table, called rainbow hashing, that supports a load factor of up to , while also supporting expected-time queries, and expected-time insertions and deletions. We further prove that this tradeoff curve is optimal: any classical open-addressed hash table that supports load factor must incur expected time per operation. Finally, we extend rainbow hashing to the setting where the hash table is dynamically resized over time. Surprisingly, the addition of dynamic resizing does not come at any time cost -- even while maintaining a load factor of at all times, we can support queries and updates. Prior to our work, achieving any time bounds of the form for all of insertions, deletions, and queries simultaneously remained an open question.
Paper Structure (47 sections, 31 theorems, 67 equations, 3 figures, 1 algorithm)

This paper contains 47 sections, 31 theorems, 67 equations, 3 figures, 1 algorithm.

Key Result

Proposition 3.1

The rainbow cell is a classical open-addressed hash table that operates continuously at load factor $1$, supports updates in expected time $O(1)$, and supports queries in expected time $O(n^{3/4})$. Updates consist of a deletion and insertion pair, and assume that the element being deleted is in a p

Figures (3)

  • Figure 1: A rainbow cell in a common-case configuration. The red elements are heavy elements, each of which is in their assigned bucket; the blue elements are light elements, each of which is in a sky slot of some bucket.
  • Figure 2: The recursive structure of a rainbow hash table.
  • Figure 3: For $i < \overline{\ell}$, the common-case state of a level-$i$ node $s$ will be that a constant fraction of the elements in its buffer have color $i$ (and hash to $s$) and the rest of have color $i + 1$ (and hash to $s$'s parent).

Theorems & Definitions (66)

  • Proposition 3.1
  • Lemma 3.2
  • proof
  • Lemma 3.3
  • proof
  • Lemma 3.4
  • proof
  • Proposition 4.1
  • Lemma 4.2
  • proof
  • ...and 56 more