-
-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bloom crate is buggy and not maintained #25
Comments
Do you plan to open source your own implementation? |
I have to check with my employer, but probably not, unfortunately. We're also just getting started on it. |
If you don't need bloom filters specifically, you could also check out cuckoofilters: https://crates.io/crates/cuckoofilter They're supposed to have better performance. |
bvssvni
added a commit
to bvssvni/linear_solver
that referenced
this issue
Jul 30, 2019
- Bumped to 0.2.2 Closes advancedresearch#25
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The bloom crate has a bug which was reported in 2017. There were no actions in the repo for three years.
Briefly, the bug is as follows: one needs to compute k hash values for an element added to the filter. In order to cut down the number of hash function calls, the crate computes two independent hashes and uses them as a seed for a RNG and then samples k values from it. I think that the basic idea is sound, but they botched the implementation of the RNG. See the
next
method forHashIter
insrc/hashing.rs
. All RNG outputs after the first are a multiple ofh2
modulo 2^64.I'm sorry to say that I don't know a good alternative for the crate. I've been looking at several other bloom filter implementations in Rust for work and none of them inspired much confidence, so we ultimately decided to roll our own.
The text was updated successfully, but these errors were encountered: