Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-13903

Add JDK9 vectorizedMismatch array compare support

    XMLWordPrintableJSON

    Details

      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

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                luy Yingqi Lu
              • Votes:
                0 Vote for this issue
                Watchers:
                12 Start watching this issue

                Dates

                • Created:
                  Updated: