Skip to main navigation Skip to search Skip to main content

Tiny Pointers

  • Michael Bender
  • , Alex Conway
  • , Martín Farach-Colton
  • , William Kuszmaul
  • , Guido Tagliavini
  • Cornell University
  • New York University
  • Carnegie Mellon University
  • Rutgers - The State University of New Jersey, New Brunswick

Research output: Contribution to journalArticlepeer-review

Abstract

This article introduces a new data-structural object that we call the tiny pointer. In many applications, traditional -bit pointers can be replaced with -bit tiny pointers at the cost of only a constant-factor time overhead and a small probability of failure. We develop a comprehensive theory of tiny pointers and give optimal constructions for both fixed-size tiny pointers (i.e., settings in which all of the tiny pointers must be the same size) and variable-size tiny pointers (i.e., settings in which the average tiny-pointer size must be small, but some tiny pointers can be larger). If a tiny pointer references an item in an array filled to load factor , then the optimal tiny-pointer size is bits in the fixed-size case, and expected bits in the variable-size case.Our tiny-pointer constructions also require us to revisit several classic problems having to do with balls and bins; these results may be of independent interest.Using tiny pointers, we apply tiny pointers to five classic data-structure problems. We show that: - A data structure storing -bit values for keys with constant-factor time modifications/queries can be implemented to take space bits, for any constant 0\) ]]>, as long as the user stores a tiny pointer of expected size with each key - here, is the th iterated logarithm. - Any binary search tree can be made succinct, meaning that it achieves times the optimal space, with constant-factor time overhead, and can even be made to be within bits of optimal if we allow for -time modifications - this holds even for rotation-based trees such as the splay tree and the red-black tree. - Any fixed-capacity key-value dictionary can be made stable (i.e., items do not move once inserted) with constant-factor time overhead and -factor space overhead. - Any key-value dictionary that requires uniform-size values can be made to support arbitrary-size values with constant-factor time overhead and with an additional space consumption of bits per -bit value for an arbitrary constant 0\) ]]> of our choice. - Given an external-memory array of size containing a dynamic set of up to key-value pairs, it is possible to maintain an internal-memory stash of size bits so that the location of any key-value pair in can be computed in constant time (and with no IOs).In each case tiny pointers allow for us to take a natural space-inefficient solution that uses pointers and make it space-efficient for free.

Original languageEnglish
Article number38
JournalACM Transactions on Algorithms
Volume21
Issue number4
DOIs
StatePublished - Sep 8 2025

Keywords

  • balanced allocation
  • balls and bins
  • hashing
  • load balancing
  • pointers
  • randomized algorithms
  • retrieval
  • space-efficient

Fingerprint

Dive into the research topics of 'Tiny Pointers'. Together they form a unique fingerprint.

Cite this