Tiny Pointers
Author(s)
Bender, Michael; Conway, Alex; Farach-Colton, Martin; Kuszmaul, William; Tagliavini, Guido
Download3700594.pdf (1.558Mb)
Publisher Policy
Publisher Policy
Article is made available in accordance with the publisher's policy and may be subject to US copyright law. Please refer to the publisher's site for terms of use.
Terms of use
Metadata
Show full item recordAbstract
This paper introduces a new data-structural object that we call the tiny pointer. In many applications, traditional logn-bit pointers can be replaced with o(logn)-bit tiny pointers at the cost of only a constant-factor time overhead. 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 element in an array filled to load factor 1?1/k, then the optimal tiny-pointer size is ?(logloglogn+logk) bits in the fixed-size case, and ?(logk) 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 revisit five classic data-structure problems: the data-retrieval problem, succinct dynamic binary search trees, space-efficient stable dictionaries, space-efficient dictionaries with variable-size keys, and the internal-memory stash problem. These are all well-studied problems, and 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.
Date issued
2024-10-21Department
Massachusetts Institute of Technology. Computer Science and Artificial Intelligence LaboratoryJournal
ACM Transactions on Algorithms
Publisher
ACM
Citation
Bender, Michael, Conway, Alex, Farach-Colton, Martin, Kuszmaul, William and Tagliavini, Guido. 2024. "Tiny Pointers." ACM Transactions on Algorithms.
Version: Final published version
ISSN
1549-6325