SALT Systems Lab

Projects / Filters

Aeris Filter

Adaptive, expandable range filter

CC++SplinterDB

Overview

Aeris (Adaptive Expandable Range filter) is a range filter that resolves false positives as it encounters them. It is the first range filter to guarantee a bounded false-positive rate for any query distribution, including skewed and adversarial ones, where existing range filters' false-positive rates are unbounded.

Aeris builds on the Memento filter, a fingerprint-based dynamic range filter, and inherits its dynamic updates, constant-time operations, and false-positive guarantees. It also expands efficiently and is monotonically adaptive, so it never forgets a false positive.

Key features

Bounded FPR

Guaranteed for any query distribution, including adversarial workloads.

Monotonic adaptivity

Once a false positive is fixed, it stays fixed.

Expandable

Grows efficiently as the dataset grows.

Point and range queries

Constant-time operations, inherited from the Memento filter.

API

ARQF* arqf = (ARQF*)malloc(sizeof(ARQF));
arqf_init_with_rhm(arqf, db, n_slots, key_size, memento_bits, seed);

qf_insert_memento(arqf->qf, value, 0, &fingerprint);       // insert

result = qf_point_query(arqf->qf, left, QF_NO_LOCK);       // query
result = qf_range_query(arqf->qf, left, right, QF_NO_LOCK);

arqf_adapt_range(arqf, left, right, 0);                     // fix a false positive