Releases: dynatrace-oss/hash4j
Releases ยท dynatrace-oss/hash4j
v0.24.0
New Features:
- Implemented
equals
andhashCode
methods for hasher objects - Introduced serialization and deserialization methods for hash stream states (
getState
andsetState
), enabling snapshotting of intermediate states and resuming processing from saved points. Additionally, hasher objects now include ahashStreamFromState
method for initializing streams from a saved state.
Bug Fixes:
- Resolved issues with the
equals
method for hash streams introduced in version 0.23.0. - Addressed edge case issues affecting hash streams when processing extremely large data inputs (โฅ 2โถยน bytes).
Full Changelog: v0.23.1...v0.24.0
v0.23.1
Bug Fix:
- Fixed issue when creating packed arrays with bit sizes
>= 2^31 - 7 = 2147483641
(corresponds to roughly 256MB). For example, for a packed array with a component size of 64 bits, this limit was reached for an array size of2^25 = 33554432
.
Full Changelog: v0.23.0...v0.23.1
v0.23.0
New Features:
- Added
getHasher
method to hash streams to retrieve the underying hasher instance - Added new methods to hashers to hash integers directly:
hashIntIntToInt
hashIntToInt
hashLongToInt
hashIntIntToLong
hashIntToLong
hashLongToLong
- Implemented
equals
andhashCode
for hash streams
Full Changelog: v0.22.0...v0.23.0
v0.22.0
New Features:
- Added the
ConsistentBucketSetHasher
interface for implementations that support bucket removals in arbitrary order - Added the
ConsistentHashing.jumpBackAnchorHash
factory method for creating aConsistentBucketSetHasher
based on JumpBackHash and ideas from AnchorHash and MementoHash
Full Changelog: v0.21.0...v0.22.0
v0.21.0
New Features:
- added convenience functions for mixing/hashing integers and longs to an int
- Hasher32.hashLongLongToInt
- Hasher32.hashLongLongLongToInt
- Hasher32.hashLongIntToInt
- Hasher32.hashIntLongToInt
- Hasher32.hashIntIntIntToInt
- added convenience functions for mixing/hashing integers and longs to a long
- Hasher64.hashIntLongToLong
- Hasher64.hashIntIntIntToLong
- Hasher64.hashLongIntToLong
Full Changelog: v0.20.0...v0.21.0
v0.20.0
New Features:
- added XXH3 128bit hash function
PseudoRandomGenerator.reset
returns self-reference- added
isEmpty
method toHyperLogLog
andUltraLogLog
- added
DistinctCountUtil.deduplicateTokens
utility function for the deduplication of hash tokens
Full Changelog: v0.19.0...v0.20.0
v0.19.0
New Features:
- introduced
HashStream32::resetAndHashToInt
,HashStream64::resetAndHashToLong
, andHashStream128:resetAndHashTo128Bits
methods for more convenient recycling of hash stream objects - added
HashStream::putUnorderedIterable
that takes aHashStream64
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 methodHashing.xxh3_64
instead - removed class
ConsistentJumpBackBucketHasher
from the public interface, please use corresponding factory methodConsistentHashing.jumpBackHash
instead
Full Changelog: v0.18.0...v0.19.0
v0.18.0
v0.17.0
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