Fast Succinct Retrieval and Approximate Membership using Ribbon

by   Peter C. Dillinger, et al.

A retrieval data structure for a static function f:S→{0,1}^r supports queries that return f(x) for any x ∈ S. Retrieval data structures can be used to implement a static approximate membership query data structure (AMQ) (i.e., a Bloom filter alternative) with false positive rate 2^-r. The information-theoretic lower bound for both tasks is r|S| bits. While succinct theoretical constructions using (1+o(1))r|S| bits were known, these could not achieve very small overheads in practice because they have an unfavorable space-time tradeoff hidden in the asymptotic costs or because small overheads would only be reached for physically impossible input sizes. With bumped ribbon retrieval (BuRR), we present the first practical succinct retrieval data structure. In an extensive experimental evaluation BuRR achieves space overheads well below 1 % while being faster than most previously used retrieval data structures (typically with space overheads at least an order of magnitude larger) and faster than classical Bloom filters (with space overhead ≥ 44 %). This efficiency, including favorable constants, stems from a combination of simplicity, word parallelism, and high locality. We additionally describe homogeneous ribbon filter AMQs, which are even simpler and faster at the price of slightly larger space overhead.


Ribbon filter: practically smaller than Bloom and Xor

Filter data structures over-approximate a set of hashable keys, i.e. set...

An Overview of Cryptographic Accumulators

This paper is a primer on cryptographic accumulators and how to apply th...

An n H_k-compressed searchable partial-sums data structure for static sequences of sublogarithmic positive integers

We consider the space needed to store a searchable partial-sums data str...

Don't Thrash: How to Cache Your Hash on Flash

This paper presents new alternatives to the well-known Bloom filter data...

Space-Efficient Data Structures for Lattices

A lattice is a partially-ordered set in which every pair of elements has...

Optimal Las Vegas Approximate Near Neighbors in ℓ_p

We show that approximate near neighbor search in high dimensions can be ...

Fast Partitioned Learned Bloom Filter

A Bloom filter is a memory-efficient data structure for approximate memb...

Please sign up or login with your details

Forgot password? Click here to reset