>From Wail Alkowaileet <wael....@gmail.com>: Wail Alkowaileet has submitted this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17879 )
Change subject: [ASTERIXDB-3289][OTH] Make MurmurHash128Bit get the acutal field data ...................................................................... [ASTERIXDB-3289][OTH] Make MurmurHash128Bit get the acutal field data - user model changes: no - storage format changes: no - interface changes: no Details: See ASTERIXDB-3289 Change-Id: I32588052b9d5d621d0fefed27e91727ea4736319 Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17879 Integration-Tests: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Reviewed-by: Murtadha Hubail <mhub...@apache.org> Tested-by: Wail Alkowaileet <wael....@gmail.com> --- M hyracks-fullstack/hyracks/hyracks-storage-am-bloomfilter/src/main/java/org/apache/hyracks/storage/am/bloomfilter/impls/MurmurHash128Bit.java 1 file changed, 69 insertions(+), 36 deletions(-) Approvals: Murtadha Hubail: Looks good to me, approved Wail Alkowaileet: Verified Jenkins: Verified Objections: Anon. E. Moose #1000171: Violations found diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-bloomfilter/src/main/java/org/apache/hyracks/storage/am/bloomfilter/impls/MurmurHash128Bit.java b/hyracks-fullstack/hyracks/hyracks-storage-am-bloomfilter/src/main/java/org/apache/hyracks/storage/am/bloomfilter/impls/MurmurHash128Bit.java index 3aa9cc4..dc6cb25 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-bloomfilter/src/main/java/org/apache/hyracks/storage/am/bloomfilter/impls/MurmurHash128Bit.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-bloomfilter/src/main/java/org/apache/hyracks/storage/am/bloomfilter/impls/MurmurHash128Bit.java @@ -27,8 +27,6 @@ **/ public class MurmurHash128Bit { - private final static int DUMMY_FIELD = 0; - public static long rotl64(long v, int n) { return ((v << n) | (v >>> (64 - n))); } @@ -65,8 +63,9 @@ long k1 = 0L; for (int j = 0; j < 8; ++j) { - k1 += (((long) tuple.getFieldData(DUMMY_FIELD)[tuple.getFieldStart(keyFields[currentFieldIndex]) - + bytePos] & 0xff) << (j << 3)); + k1 += (((long) tuple.getFieldData( + keyFields[currentFieldIndex])[tuple.getFieldStart(keyFields[currentFieldIndex]) + bytePos] + & 0xff) << (j << 3)); ++bytePos; if (tuple.getFieldLength(keyFields[currentFieldIndex]) == bytePos) { ++currentFieldIndex; @@ -75,8 +74,9 @@ } long k2 = 0L; for (int j = 0; j < 8; ++j) { - k2 += (((long) tuple.getFieldData(DUMMY_FIELD)[tuple.getFieldStart(keyFields[currentFieldIndex]) - + bytePos] & 0xff) << (j << 3)); + k2 += (((long) tuple.getFieldData( + keyFields[currentFieldIndex])[tuple.getFieldStart(keyFields[currentFieldIndex]) + bytePos] + & 0xff) << (j << 3)); ++bytePos; if (tuple.getFieldLength(keyFields[currentFieldIndex]) == bytePos) { ++currentFieldIndex; @@ -113,56 +113,62 @@ bytePos = tuple.getFieldLength(keyFields[currentFieldIndex]) - 1; switch (length & 15) { case 15: - k2 ^= ((long) tuple.getFieldData(DUMMY_FIELD)[tuple.getFieldStart(keyFields[currentFieldIndex]) - + bytePos]) << 48; + k2 ^= ((long) tuple + .getFieldData(keyFields[currentFieldIndex])[tuple.getFieldStart(keyFields[currentFieldIndex]) + + bytePos]) << 48; --bytePos; if (bytePos == -1) { --currentFieldIndex; bytePos = tuple.getFieldLength(keyFields[currentFieldIndex]) - 1; } case 14: - k2 ^= ((long) tuple.getFieldData(DUMMY_FIELD)[tuple.getFieldStart(keyFields[currentFieldIndex]) - + bytePos]) << 40; + k2 ^= ((long) tuple + .getFieldData(keyFields[currentFieldIndex])[tuple.getFieldStart(keyFields[currentFieldIndex]) + + bytePos]) << 40; --bytePos; if (bytePos == -1) { --currentFieldIndex; bytePos = tuple.getFieldLength(keyFields[currentFieldIndex]) - 1; } case 13: - k2 ^= ((long) tuple.getFieldData(DUMMY_FIELD)[tuple.getFieldStart(keyFields[currentFieldIndex]) - + bytePos]) << 32; + k2 ^= ((long) tuple + .getFieldData(keyFields[currentFieldIndex])[tuple.getFieldStart(keyFields[currentFieldIndex]) + + bytePos]) << 32; --bytePos; if (bytePos == -1) { --currentFieldIndex; bytePos = tuple.getFieldLength(keyFields[currentFieldIndex]) - 1; } case 12: - k2 ^= ((long) tuple.getFieldData(DUMMY_FIELD)[tuple.getFieldStart(keyFields[currentFieldIndex]) - + bytePos]) << 24; + k2 ^= ((long) tuple + .getFieldData(keyFields[currentFieldIndex])[tuple.getFieldStart(keyFields[currentFieldIndex]) + + bytePos]) << 24; --bytePos; if (bytePos == -1) { --currentFieldIndex; bytePos = tuple.getFieldLength(keyFields[currentFieldIndex]) - 1; } case 11: - k2 ^= ((long) tuple.getFieldData(DUMMY_FIELD)[tuple.getFieldStart(keyFields[currentFieldIndex]) - + bytePos]) << 16; + k2 ^= ((long) tuple + .getFieldData(keyFields[currentFieldIndex])[tuple.getFieldStart(keyFields[currentFieldIndex]) + + bytePos]) << 16; --bytePos; if (bytePos == -1) { --currentFieldIndex; bytePos = tuple.getFieldLength(keyFields[currentFieldIndex]) - 1; } case 10: - k2 ^= ((long) tuple.getFieldData(DUMMY_FIELD)[tuple.getFieldStart(keyFields[currentFieldIndex]) - + bytePos]) << 8; + k2 ^= ((long) tuple + .getFieldData(keyFields[currentFieldIndex])[tuple.getFieldStart(keyFields[currentFieldIndex]) + + bytePos]) << 8; --bytePos; if (bytePos == -1) { --currentFieldIndex; bytePos = tuple.getFieldLength(keyFields[currentFieldIndex]) - 1; } case 9: - k2 ^= ((long) tuple.getFieldData(DUMMY_FIELD)[tuple.getFieldStart(keyFields[currentFieldIndex]) - + bytePos]); + k2 ^= ((long) tuple.getFieldData( + keyFields[currentFieldIndex])[tuple.getFieldStart(keyFields[currentFieldIndex]) + bytePos]); --bytePos; if (bytePos == -1) { --currentFieldIndex; @@ -174,64 +180,71 @@ h2 ^= k2; case 8: - k1 ^= ((long) tuple.getFieldData(DUMMY_FIELD)[tuple.getFieldStart(keyFields[currentFieldIndex]) - + bytePos]) << 56; + k1 ^= ((long) tuple + .getFieldData(keyFields[currentFieldIndex])[tuple.getFieldStart(keyFields[currentFieldIndex]) + + bytePos]) << 56; --bytePos; if (bytePos == -1) { --currentFieldIndex; bytePos = tuple.getFieldLength(keyFields[currentFieldIndex]) - 1; } case 7: - k1 ^= ((long) tuple.getFieldData(DUMMY_FIELD)[tuple.getFieldStart(keyFields[currentFieldIndex]) - + bytePos]) << 48; + k1 ^= ((long) tuple + .getFieldData(keyFields[currentFieldIndex])[tuple.getFieldStart(keyFields[currentFieldIndex]) + + bytePos]) << 48; --bytePos; if (bytePos == -1) { --currentFieldIndex; bytePos = tuple.getFieldLength(keyFields[currentFieldIndex]) - 1; } case 6: - k1 ^= ((long) tuple.getFieldData(DUMMY_FIELD)[tuple.getFieldStart(keyFields[currentFieldIndex]) - + bytePos]) << 40; + k1 ^= ((long) tuple + .getFieldData(keyFields[currentFieldIndex])[tuple.getFieldStart(keyFields[currentFieldIndex]) + + bytePos]) << 40; --bytePos; if (bytePos == -1) { --currentFieldIndex; bytePos = tuple.getFieldLength(keyFields[currentFieldIndex]) - 1; } case 5: - k1 ^= ((long) tuple.getFieldData(DUMMY_FIELD)[tuple.getFieldStart(keyFields[currentFieldIndex]) - + bytePos]) << 32; + k1 ^= ((long) tuple + .getFieldData(keyFields[currentFieldIndex])[tuple.getFieldStart(keyFields[currentFieldIndex]) + + bytePos]) << 32; --bytePos; if (bytePos == -1) { --currentFieldIndex; bytePos = tuple.getFieldLength(keyFields[currentFieldIndex]) - 1; } case 4: - k1 ^= ((long) tuple.getFieldData(DUMMY_FIELD)[tuple.getFieldStart(keyFields[currentFieldIndex]) - + bytePos]) << 24; + k1 ^= ((long) tuple + .getFieldData(keyFields[currentFieldIndex])[tuple.getFieldStart(keyFields[currentFieldIndex]) + + bytePos]) << 24; --bytePos; if (bytePos == -1) { --currentFieldIndex; bytePos = tuple.getFieldLength(keyFields[currentFieldIndex]) - 1; } case 3: - k1 ^= ((long) tuple.getFieldData(DUMMY_FIELD)[tuple.getFieldStart(keyFields[currentFieldIndex]) - + bytePos]) << 16; + k1 ^= ((long) tuple + .getFieldData(keyFields[currentFieldIndex])[tuple.getFieldStart(keyFields[currentFieldIndex]) + + bytePos]) << 16; --bytePos; if (bytePos == -1) { --currentFieldIndex; bytePos = tuple.getFieldLength(keyFields[currentFieldIndex]) - 1; } case 2: - k1 ^= ((long) tuple.getFieldData(DUMMY_FIELD)[tuple.getFieldStart(keyFields[currentFieldIndex]) - + bytePos]) << 8; + k1 ^= ((long) tuple + .getFieldData(keyFields[currentFieldIndex])[tuple.getFieldStart(keyFields[currentFieldIndex]) + + bytePos]) << 8; --bytePos; if (bytePos == -1) { --currentFieldIndex; bytePos = tuple.getFieldLength(keyFields[currentFieldIndex]) - 1; } case 1: - k1 ^= ((long) tuple.getFieldData(DUMMY_FIELD)[tuple.getFieldStart(keyFields[currentFieldIndex]) - + bytePos]); + k1 ^= ((long) tuple.getFieldData( + keyFields[currentFieldIndex])[tuple.getFieldStart(keyFields[currentFieldIndex]) + bytePos]); k1 *= c1; k1 = rotl64(k1, 31); k1 *= c2; -- To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17879 To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Change-Id: I32588052b9d5d621d0fefed27e91727ea4736319 Gerrit-Change-Number: 17879 Gerrit-PatchSet: 2 Gerrit-Owner: Wail Alkowaileet <wael....@gmail.com> Gerrit-Reviewer: Anon. E. Moose #1000171 Gerrit-Reviewer: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Gerrit-Reviewer: Murtadha Hubail <mhub...@apache.org> Gerrit-Reviewer: Wail Alkowaileet <wael....@gmail.com> Gerrit-MessageType: merged