private static long toLongLE(byte[] b, int i) {
        return 0xffffffffffffffffL & (((long) b[i + 7] << 56) + ((long) (b[i + 6] & 255) << 48)
                + ((long) (b[i + 5] & 255) << 40) + ((long) (b[i + 4] & 255) << 32) + ((long) (b[i + 3] & 255) << 24)
                + ((b[i + 2] & 255) << 16) + ((b[i + 1] & 255) << 8) + ((b[i + 0] & 255)));
    }
NOTE: The code is modified to be compatible with CityHash128 used in
ClickHouse
clickhouse-data/src/main/java/com/clickhouse/data/ClickHouseCityHash.java