T Jake Luciani commented on CASSANDRA-12787:

We already have a .kind() call.  I'm going to verify the issue on a high core 
system.  [~shylaja.koko...@intel.com] thanks so much for discovering this.  May 
I ask what tool you used to see this? I am able to see DK.compare was a hotspot 
but how do you see the jvm cpu cycles?  

> Reduce instanceOf() type checking to improve performance
> --------------------------------------------------------
>                 Key: CASSANDRA-12787
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-12787
>             Project: Cassandra
>          Issue Type: Improvement
>         Environment: The tests and examples stated were run on:
> Intel (R) Xeon (R) CPU E5-2699 v3 @ 2.30GHz, HT Enabled
> Oracle JDK 1.8
> Cassandra 3.10-SNAPSHOT
> Linux kernel 4.7
>            Reporter: shylaja kokoori
>             Fix For: 3.x
>         Attachments: reduce_instanceof_typechecking.pdf
> While performance profiling Cassandra with cassandra-stress test on a  pure 
> write workload, we noticed that one of the hot methods for Cassandra server 
> is the compareTo( PartitionPosition pos) function in 
> org.apache.cassandra.db.DecoratedKey. The actual root cause of the problem is 
> a slowdown in Java's instanceof operator.
> Our initial performance testing using a hacked JVM shows about 61% increase 
> in throughput and about 15% reduction in 99 percentile latency. Data shows 
> that improvements are from the removal of thread contention caused by 
> Instanceof operator.
> Currently, we are working on a JDK fix to solve this issue. In the meantime, 
> we think it will be beneficial to address this issue at Java application 
> level as well. We are in the process of creating a patch to Cassandra 
> replacing instanceof check with virtual method calls. The patch will be 
> available in this thread for review soon. Please let us know your feedback 
> and comments.
> For more details please refer to the attached pdf.

This message was sent by Atlassian JIRA

Reply via email to