TY - GEN
T1 - Quotient filters
T2 - 32nd IEEE International Parallel and Distributed Processing Symposium, IPDPS 2018
AU - Geil, Afton
AU - Farach-Colton, Martin
AU - Owens, John
N1 - Publisher Copyright:
© 2018 IEEE.
PY - 2018/8/3
Y1 - 2018/8/3
N2 - In this paper, we present our GPU implementation of the quotient filter, a compact data structure designed to implement approximate membership queries. The quotient filter is similar to the more well-known Bloom filter; however, in addition to set insertion and membership queries, the quotient filter also supports deletions and merging filters without requiring rehashing of the data set. Furthermore, the quotient filter can be extended to include counters without increasing the memory footprint. This paper describes our GPU implementation of two types of quotient filters: The standard quotient filter and the rank-And-select-based quotient filter. We describe the parallelization of all filter operations, including a comparison of the four different methods we devised for parallelizing quotient filter construction. In solving this problem, we found that we needed an operation similar to a parallel scan, but for non-Associative operators. One outcome of this work is a variety of methods for computing parallel scan-Type operations on a non-Associative operator. For membership queries, we achieve a throughput of up to 1.13 billion items/second for the rank-And-select-based quotient filter: A speedup of 3x over the BloomGPU filter. Our fastest filter build method achieves a speedup of 2.1-3.1x over BloomGPU, with a peak throughput of 621 million items/second, and a rate of 516 million items/second for a 70% full filter. However, we find that our filters do not perform incremental updates as fast as the BloomGPU filter. For a batch of 2 million items, we perform incremental inserts at a rate of 81 million items/second-a 2.5x slowdown compared to BloomGPU's throughput of 201 million items/second. The quotient filter's memory footprint is comparable to that of a Bloom filter.
AB - In this paper, we present our GPU implementation of the quotient filter, a compact data structure designed to implement approximate membership queries. The quotient filter is similar to the more well-known Bloom filter; however, in addition to set insertion and membership queries, the quotient filter also supports deletions and merging filters without requiring rehashing of the data set. Furthermore, the quotient filter can be extended to include counters without increasing the memory footprint. This paper describes our GPU implementation of two types of quotient filters: The standard quotient filter and the rank-And-select-based quotient filter. We describe the parallelization of all filter operations, including a comparison of the four different methods we devised for parallelizing quotient filter construction. In solving this problem, we found that we needed an operation similar to a parallel scan, but for non-Associative operators. One outcome of this work is a variety of methods for computing parallel scan-Type operations on a non-Associative operator. For membership queries, we achieve a throughput of up to 1.13 billion items/second for the rank-And-select-based quotient filter: A speedup of 3x over the BloomGPU filter. Our fastest filter build method achieves a speedup of 2.1-3.1x over BloomGPU, with a peak throughput of 621 million items/second, and a rate of 516 million items/second for a 70% full filter. However, we find that our filters do not perform incremental updates as fast as the BloomGPU filter. For a batch of 2 million items, we perform incremental inserts at a rate of 81 million items/second-a 2.5x slowdown compared to BloomGPU's throughput of 201 million items/second. The quotient filter's memory footprint is comparable to that of a Bloom filter.
KW - Algorithms
KW - Approximate membership queries
KW - Bloom filter
KW - Data structures
KW - GPU computing
UR - http://www.scopus.com/inward/record.url?scp=85052234818&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85052234818&partnerID=8YFLogxK
U2 - 10.1109/IPDPS.2018.00055
DO - 10.1109/IPDPS.2018.00055
M3 - Conference contribution
AN - SCOPUS:85052234818
SN - 9781538643686
T3 - Proceedings - 2018 IEEE 32nd International Parallel and Distributed Processing Symposium, IPDPS 2018
SP - 451
EP - 462
BT - Proceedings - 2018 IEEE 32nd International Parallel and Distributed Processing Symposium, IPDPS 2018
PB - Institute of Electrical and Electronics Engineers Inc.
Y2 - 21 May 2018 through 25 May 2018
ER -