/
Filters (Bloom, Quotient, & Cuckoo) Filters (Bloom, Quotient, & Cuckoo)

Filters (Bloom, Quotient, & Cuckoo) - PowerPoint Presentation

mackenzie
mackenzie . @mackenzie
Follow
67 views
Uploaded On 2023-07-28

Filters (Bloom, Quotient, & Cuckoo) - PPT Presentation

CSCI 333 Bloom Filters Are there any problems with Bloom filters What operations do they supportnot support How do you grow a Bloom filter What if your filter itself exceeds RAM how bad is locality ID: 1012733

quotient filter cache hash filter quotient hash cache slot flash thrash bloom www bits table remainder idea https usenix

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Filters (Bloom, Quotient, & Cuckoo)" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

1. Filters (Bloom, Quotient, & Cuckoo)CSCI 333

2. Bloom FiltersAre there any problems with Bloom filters?What operations do they support/not support?How do you grow a Bloom filter?What if your filter itself exceeds RAM (how bad is locality)?

3. Quotient FiltersBased on a technique from a homework question in Donald Knuth’s “The Art of Computer Programming: Sorting and Searching, volume 3” (Section 6.4, exercise 13)Quotienting Idea:Hash:1 0 1 1 0 0 1 0 1 1 0 1 1 1 0 0 1 0 1

4. Quotient FiltersBased on a technique from a homework question in Donald Knuth’s “The Art of Computer Programming: Sorting and Searching, volume 3” (Section 6.4, exercise 13)Quotienting Idea:Hash:1 0 1 1 0 0 1 0 1 1 0 1 1 1 0 0 1 0 1Quotient: q most significant bitsRemainder: r least significant bitsRemaining bits are discarded/lost

5. Building a Quotient FilterThe quotient is used as an index into an m-bucket array, where the remainder is stored.Essentially, a hashtable that stores the remainders as a valueCollisions are resolved using linear probing and 3 extra bits per bucketis_occupied: whether a slot is the canonical slot for some value currently stored in the filteris_continuation: whether a slot holds a remainder that is part of a run (but not the first)is_shifted: whether a slot holds a remainder that is not in its canonical slot

6. Quotient Filter ExampleHash table with external chainingHash table with linear probing + bits Table of objects with quotients/ remainders for reference[https://www.usenix.org/conference/hotstorage11/dont-thrash-how-cache-your-hash-flash]

7. Quotient Filter Example[https://www.usenix.org/conference/hotstorage11/dont-thrash-how-cache-your-hash-flash]

8. Quotient Filter Concept-checkWhat are the possible reasons for a collision?Which collisions are treated as “false positives”What parameters does the QF give the user? In other words:What knobs can you turn to control the size of the filter?What knobs can you turn to control the false positive rate of the filter?

9. Why QF over BF?Supports deletesSupports “merges”Good cache localityHow many locations accessed per operation?Some math can show that runs/clusters are expected to be smallDon’t Thrash, How to Cache Your Hash on Flash also introduces the Cascade filter, a write-optimized filter made up of increasingly large QFs that spill over to disk.Similar idea to Log-structured merge trees, which we will discuss soon!

10. Cascade Filter[https://www.usenix.org/conference/hotstorage11/dont-thrash-how-cache-your-hash-flash]