xor filters?

67 views
Skip to first unread message

Jan Steemann

unread,
Aug 9, 2023, 4:32:12 AM8/9/23
to rocksdb
Hi,
has anyone ever considered the usage of Xor and Binary Fuse Filtes instead of using Bloom or Ribbon filters for key probing?

There is a C library that implements them:

Bloom filters are used to quickly check whether an element is part of a set. Xor filters and binary fuse filters are faster and more concise alternative to Bloom filters. Furthermore, unlike Bloom filters, xor and binary fuse filters are naturally compressible using standard techniques (gzip, zstd, etc.). They are also smaller than cuckoo filters. They are used in production systems.

There is also a C++ implementation with a benchmark suite, comparing these filters against Bloom and Ribbon filter implementations:

Does anyone have experience with these types of filters and would expect that they indeed allow more efficient access and more compact representation than Bloom and/or Ribbon filters? If they are indeed better (as claimed), they would seem like a natural fit for a new RocksDB FilterPolicy implementation.


Ted Mostly

unread,
Aug 9, 2023, 4:54:02 AM8/9/23
to Jan Steemann, rocksdb


`ribbon filter` is some kind of `xor filter`, enhancement



Dan Carfas

unread,
Aug 10, 2023, 12:35:24 PM8/10/23
to rocksdb
Hey Jan.
Thanks for the great feature suggestion. We are going to open a ticket and do some homework about it 
Your input would be appreciated - please join the discord server here and this is the link to the thread about your suggestion.
Reply all
Reply to author
Forward
0 new messages