TL;DR
This paper introduces a new lock-free concurrent quotient filter with an expandable design, improving speed, space efficiency, and simplicity over traditional methods and Bloom filters, enabling scalable and efficient approximate membership queries.
Contribution
It presents a novel lock-free locking scheme, an expandable quotient filter with unbounded growth, and variants that reduce status bits and enable lock-free concurrent implementations.
Findings
Achieves 1.8x higher speedups with the new locking scheme.
Supports unbounded growth while maintaining false positive rate.
Lock-free implementation of a quotient filter variant is feasible and efficient.
Abstract
A quotient filter is a cache efficient AMQ data structure. Depending on the fill degree of the filter most insertions and queries only need to access one or two consecutive cache lines. This makes quotient filters fast compared to the more commonly used Bloom filters that incur multiple cache misses. However, concurrent Bloom filters are easy to implement and can be implemented lock-free while concurrent quotient filters are not as simple. Usually concurrent quotient filters work by using an external array of locks -- each protecting a region of the table. Accessing this array incurs one additional cache miss per operation. We propose a new locking scheme that has no memory overhead. Using this new locking scheme we achieve 1.8 times higher speedups than with the common external locking scheme. Another advantage of quotient filters over Bloom filters is that a quotient filter can…
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.
