You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Ariel Weisberg (JIRA)" <ji...@apache.org> on 2015/01/14 00:09:36 UTC
[jira] [Updated] (CASSANDRA-8614) Select optimal CRC32
implementation at runtime
[ https://issues.apache.org/jira/browse/CASSANDRA-8614?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ariel Weisberg updated CASSANDRA-8614:
--------------------------------------
Attachment: CRC32FactoryTest.java
8614.patch
Compiles on Java 7 and when run on Java 8 you get the intrinsic. There is a test case to validate that the two checksums implementations behave the same.
> Select optimal CRC32 implementation at runtime
> ----------------------------------------------
>
> Key: CASSANDRA-8614
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8614
> Project: Cassandra
> Issue Type: Improvement
> Components: Core
> Reporter: Ariel Weisberg
> Labels: performance
> Attachments: 8614.patch, CRC32FactoryTest.java
>
>
> JDK 8 has support for an intrinsic for CRC32 that runs at 12-13 gigabytes/sec per core in my quick and dirty test. PureJavaCRC32 is < 800 megabytes/sec if I recall and it has a lookup table that evicts random cache lines every time it runs.
> In order to capture the benefit of that when it is available we can select a CRC32 implementation at startup in a static block.
> If JDK 8 is not what is running we can fall back to the existing PureJavaCRC32 implementation.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)