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

              Unassigned Unassigned
              luy Yingqi Lu
              Votes:
              0 Vote for this issue
              Watchers:
              14 Start watching this issue

              Dates

                Created:
                Updated: