Skip to content

Releases: dynatrace-oss/hash4j

v0.19.0

25 Nov 14:24
fdd1f6f
Compare
Choose a tag to compare

New Features:

  • introduced HashStream32::resetAndHashToInt, HashStream64::resetAndHashToLong, and HashStream128:resetAndHashTo128Bits methods for more convenient recycling of hash stream objects
  • added HashStream::putUnorderedIterable that takes a HashStream64

Improvements:

  • performance optimization of PackedArrayHandler::numEqualComponents for bit size equal to 1

Incompatible Changes:

  • removed class XXH3_64 from the public interface, please use corresponding factory method Hashing.xxh3_64 instead
  • removed class ConsistentJumpBackBucketHasher from the public interface, please use corresponding factory method ConsistentHashing.jumpBackHash instead

Full Changelog: v0.18.0...v0.19.0

v0.18.0

04 Aug 10:23
962cda6
Compare
Choose a tag to compare

New Features:

  • XXH3: a 64-bit hash function
  • added copy method to HashStream #238, thanks to @deripas

Improvements:

  • improved HashStream methods for native arrays (putShorts, putInts, ...)

Full Changelog: v0.17.0...v0.18.0

v0.17.0

16 Feb 12:05
Compare
Choose a tag to compare

New Features:

  • FarmHashUo: a 64-bit hash function
  • JumpBackHash: a very fast consistent hash algorithm

Improvements:

  • improved performance of HyperLogLog and UltraLogLog merge operations if sketches have same precision
  • better performance of hash functions relying on unsigned 128-bit multiplications on Java 21 by using java.lang.Math.unsignedMultiplyHigh

Full Changelog: v0.16.0...v0.17.0

v0.16.0

28 Dec 21:04
c747024
Compare
Choose a tag to compare

Improvements:

  • optimized performance of distinct count estimators

Full Changelog: v0.15.0...v0.16.0

v0.15.0

05 Dec 20:06
d68a9e1
Compare
Choose a tag to compare

New Features:

  • new hash function: Java port of PolymurHash 2.0

Improvements:

  • optimized performance of putChars for the FarmHashNa hashing algorithm
  • optimized performance of the distinct count estimator for HyperLogLog
  • optimized speed of consistent hashing based on improved consistent weighted sampling
  • reduced risk of an OutOfMemoryError when applying putUnorderedIterable on Iterables of unknown huge (billion range) size

Bug Fixes:

  • fixed bug in Murmur3_128 leading to an infinite loop when hashing char sequences of lengths >= 2^31 - 8 = 2147483640

Full Changelog: v0.14.0...v0.15.0

v0.14.0

24 Nov 20:19
b3e8d1b
Compare
Choose a tag to compare

New Features:

  • new consistent hashing algorithm with constant runtime based on improved consistent weighted sampling

Improvements:

  • faster maximum-likelihood estimator for UltraLogLog

Full Changelog: v0.13.0...v0.14.0

v0.13.0

20 Sep 08:28
8f8064f
Compare
Choose a tag to compare

New Features:

  • added SimHash implementation
  • added ElementHashProvider::ofCollection

Full Changelog: v0.12.0...v0.13.0

v0.12.0

06 Sep 07:56
bf82b7f
Compare
Choose a tag to compare

New Features:

  • new hash function FarmHashNa
  • added FastSimHash, a fast implementation of the SimHash algorithm for similarity hashing
  • added set and reset methods to the MartingaleEstimator to enable object reuse
  • added hashLongLongToLong and hashLongLongLongToLong to the Hasher64 interface for fast hashing (mixing) of 2 or 3 longs

Full Changelog: v0.11.0...v0.12.0

v0.11.0

26 Jun 07:51
Compare
Choose a tag to compare

New Features:

  • new hash function: Komihash 5.0

Incompatible changes:

  • removed classes AbstractHashStream32, AbstractHashStream64, and AbstractHashStream128 from public interface

Full Changelog: v0.10.0...v0.11.0

v0.10.0

31 May 08:05
Compare
Choose a tag to compare

New Features:

  • better and slightly more accurate default estimator for UltraLogLog (UltraLogLog.OPTIMAL_FGRA_ESTIMATOR)
  • added token support for HyperLogLog and UltraLogLog, which allows 64-bit hash values to be reduced to 32-bit tokens first, which can then be used alternatively for the add operation

Incompatible changes:

  • removed UltraLogLog.SMALL_RANGE_CORRECTED_4_GRA_ESTIMATOR (use UltraLogLog.OPTIMAL_FGRA_ESTIMATOR instead)

Full Changelog: v0.9.0...v0.10.0