TL;DR
This paper develops highly optimized data structures for the dynamic predecessor problem, improving speed and space efficiency for maintaining integer sets under updates and queries, with practical implementations for common bit widths.
Contribution
The authors engineer and implement optimized variants of universe reduction, y-fast tries, and B-trees, demonstrating superior performance and space efficiency over previous methods.
Findings
Data structures outperform previous approaches in speed and space.
Implementations for 32, 40, 64-bit integers are practical and efficient.
Insights on data storage strategies and CPU instruction benefits.
Abstract
We present highly optimized data structures for the dynamic predecessor problem, where the task is to maintain a set of -bit numbers under insertions, deletions, and predecessor queries (return the largest element in no larger than a given key). The problem of finding predecessors can be viewed as a generalized form of the membership problem, or as a simple version of the nearest neighbour problem. It lies at the core of various real-world problems such as internet routing. In this work, we engineer (1) a simple implementation of the idea of universe reduction, similar to van-Emde-Boas trees (2) variants of y-fast tries [Willard, IPL'83], and (3) B-trees with different strategies for organizing the keys contained in the nodes, including an implementation of dynamic fusion nodes [P\v{a}tra\c{s}cu and Thorup, FOCS'14]. We implement our data structures for , which…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
