[
https://issues.apache.org/jira/browse/IGNITE-14769?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17452464#comment-17452464
]
Andrey N. Gura commented on IGNITE-14769:
-----------------------------------------
My choice is the murmur3 hash function. It seems that the murmur3 and the
fastHash are very close to each other but usage of the fastHash is more risky
because it is ported and the following problems are possible:
1. the fastHash port could contain some not obvious errors (still there are
libs with buggy binary search implementation :) )
2. the fastHash port is not optimized for Java runtime (just because we didn't
do it).
If you can neglect by these risks, so you can choose the fastHash.
> Key hash calculation.
> ---------------------
>
> Key: IGNITE-14769
> URL: https://issues.apache.org/jira/browse/IGNITE-14769
> Project: Ignite
> Issue Type: Improvement
> Reporter: Andrey Mashenkov
> Assignee: Konstantin Orlov
> Priority: Major
> Labels: iep-54, ignite-3
> Attachments: Partition count 100.png, Partition count 1024 (rnd).png,
> Partition count 1024.png, Partition count 128 (rnd).png, Partition count
> 128.png, Partition count 16 (rnd).png, Partition count 32.png, Partition
> count 480 (rnd).png, Partition count 480.png, Partition count 8.png
>
> Original Estimate: 96h
> Remaining Estimate: 96h
>
> There are next possible ways for cache calculation.
> # Update hash on every write method call as it works for now.
> # Calculate for all key chunk (hash of byte[]) - all columns including a
> null-map.
> Let's choose and implement the best way and along with a better hash function,
> e.g. xxHash64 [1], Murmur3 [2]released in Apache Commons, CityHash (from
> Google) [3], FastHash32 [4].
>
> [1][https://github.com/Cyan4973/xxHash/]
> [2][https://commons.apache.org/proper/commons-codec/jacoco/org.apache.commons.codec.digest/MurmurHash3.java.html]
> [3] [https://github.com/google/cityhash]
> [4] [https://github.com/rurban/smhasher/blob/master/fasthash.cpp]
--
This message was sent by Atlassian Jira
(v8.20.1#820001)