Switch to xxHash for Bloom filters; add convenience overload for trace_refs_recursive. #173
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
xxHash is empirically superior to std::hash and boost::hash in terms of both speed and quality.
https://github.com/Cyan4973/xxHash?tab=readme-ov-file#xxhash---extremely-fast-hash-algorithm
This PR adds a dependency on Conan Center's xxhash package and switches the LLFS Bloom Filter implementation to use it. We add another 32 random seeds for hash functions, for a total of up to 64 (which should be more than enough for any reasonable scenario).
I also took the opportunity to tighten up the Bloom filter test assertions, based on the improved quality of the hashing functions.
Various other Conan requirements are also upgraded.