This is an automated email from the ASF dual-hosted git repository. lzljs3620320 pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-paimon.git
commit 4cbd24db4568b62d63b12f7e1c0d5cb89e3a34f2 Author: Jingsong <[email protected]> AuthorDate: Wed Jan 24 19:45:13 2024 +0800 [core] Avoid hashbytes twice in HashLookupStoreReader --- .../java/org/apache/paimon/lookup/hash/HashLookupStoreReader.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/paimon-common/src/main/java/org/apache/paimon/lookup/hash/HashLookupStoreReader.java b/paimon-common/src/main/java/org/apache/paimon/lookup/hash/HashLookupStoreReader.java index 6fc380691..e092ca6d5 100644 --- a/paimon-common/src/main/java/org/apache/paimon/lookup/hash/HashLookupStoreReader.java +++ b/paimon-common/src/main/java/org/apache/paimon/lookup/hash/HashLookupStoreReader.java @@ -178,18 +178,19 @@ public class HashLookupStoreReader return null; } - if (bloomFilter != null && !bloomFilter.testHash(MurmurHashUtils.hashBytes(key))) { + int hashcode = MurmurHashUtils.hashBytes(key); + if (bloomFilter != null && !bloomFilter.testHash(hashcode)) { return null; } - long hash = MurmurHashUtils.hashBytesPositive(key); + long hashPositive = hashcode & 0x7fffffff; int numSlots = slots[keyLength]; int slotSize = slotSizes[keyLength]; int indexOffset = indexOffsets[keyLength]; long dataOffset = dataOffsets[keyLength]; for (int probe = 0; probe < numSlots; probe++) { - long slot = (hash + probe) % numSlots; + long slot = (hashPositive + probe) % numSlots; inputView.setReadPosition(indexOffset + slot * slotSize); inputView.readFully(slotBuffer, 0, slotSize);
