Details
-
Improvement
-
Status: Open
-
Normal
-
Resolution: Unresolved
-
None
Description
Dear All,
JDK9 has recently been released (http://openjdk.java.net/projects/jdk9/). It introduces a set of new vectorizedMismatch APIs for array comparison. On supported platforms, the new JDK9 implementation is intrisified to leverage SIMD instructions. For a byte array comparison, up to 64 bytes (512 bits) can be compared as a single unit. Feature details please refer to http://download.java.net/java/jdk9/docs/api/java/util/Arrays.html and https://bugs.openjdk.java.net/browse/JDK-8033148
Currently in Cassandra, keys are implemented as ByteBuffers and compared as byte arrays most of the time. Key comparison, for example decorated key compare, it is either done with unsafe operation taking 8 bytes at a time, or pure java operation comparing byte by byte. This can be optimized with new JDK9 java.util.Arrays.compare APIs on modern CPUs.
Please let us know your feedback. At the meantime, we will submit a patch with performance studies in couple of weeks.
Thanks,
Yingqi Lu
Attachments
Issue Links
- Dependency
-
CASSANDRA-9608 Support Java 11
- Resolved