Skip to content

Releases: mpope9/exor_filter

v0.4.1

20 Jan 02:42
Compare
Choose a tag to compare

Included in this release:

  • Upgraded xor_filter headerfile. Includes protections against dups.
  • Included fix in xor_filter header file found by cppcheck.
  • Used cppcheck on nif code, looks clean.
  • Performance increases
    • Using a custom tail-recursive over_10_thousand/1 instead of length/1 function for greater performance on large lists.
    • Removing dup key checking from erlang code, now found in underlying library.
  • Address typo for freeing the wrong pointer
  • Using lists:map instead of lists:foldr, as it isn't tail recursive, for the default hash.
  • Removed raw interface, no longer has any speed benefits.

v0.3.0

06 Jan 15:04
Compare
Choose a tag to compare

This release is the 'production readiness' release.

Includes:

  1. Error when duplicate keys are present in the hash function and pre-hashed options, there is no longer the risk of an infinite loop during initialization!
    • The default_hash squashes dupes, so that there is no risk of this happening here either.
  2. A 'raw' interface to avoid this, use with caution.
  3. Convenience modules xor8 and xor16.
  4. Dialyzer fixes
  5. Moar tests
  6. Documentation updates.
  7. Simplified C and erlang code
  8. Removal of fast_hash option, as duplication checking would have voided the usefulness.

v0.0.1

26 Dec 02:41
Compare
Choose a tag to compare

v0.0.1 CHANGELOG

  • Two hashing methods are provided
    • default_hash, which uses the erlang:phash2/1 function
    • fast_hash, which is faster but inconsistent across nodes.
  • A custom hash function may be provided
  • Pre-hashed data may be passed as well.
  • Initialization using a dirty nif is used if the passed list is greater than 10K elements. So it is 'safe' to load large amounts of data.
  • It takes 2 seconds to initialize a filter of 10M elements using the exor_filter:xor8_buffered/2 function with pre-hashed data.
    • Our example used keys that were generated sequentially 😛