[
https://issues.apache.org/jira/browse/CASSANDRA-21564?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18109416#comment-18109416
]
Dmitry Konstantinov commented on CASSANDRA-21564:
-------------------------------------------------
comparison of lz4-ava versions, 16 KiB blocks:
{code:java}
┌──────────┬──────────────────────────┬──────────┬───────────────────────────┬──────────┐
│ lz4-java │ compress │ vs 1.8.0 │ uncompress │
vs 1.8.0 │
├──────────┼──────────────────────────┼──────────┼───────────────────────────┼──────────┤
│ 1.8.0 │ 85,728 ops/s (1.40 GB/s) │ — │ 364,566 ops/s (5.97 GB/s) │
— │
├──────────┼──────────────────────────┼──────────┼───────────────────────────┼──────────┤
│ 1.10.1 │ 85,649 (1.40 GB/s) │ −0.09% │ 327,170 (5.36 GB/s) │
−10.3% │
├──────────┼──────────────────────────┼──────────┼───────────────────────────┼──────────┤
│ 1.10.4 │ 85,791 (1.40 GB/s) │ +0.07% │ 332,852 (5.45 GB/s) │
−8.7% │
├──────────┼──────────────────────────┼──────────┼───────────────────────────┼──────────┤
│ 1.11.2 │ 85,611 (1.40 GB/s) │ −0.14% │ 337,476 (5.53 GB/s) │
−7.4% │
└──────────┴──────────────────────────┴──────────┴───────────────────────────┴──────────┘
{code}
* JDK 21
* Two 5-fork passes each, within-version spread across the two passes was
0.004–0.07%, so these gaps are outside noise
* compression ratio 0.298
* direct buffer
Where the CPU goes — 1.11.2 @ 4 KiB block size
Decompress:
{code:java}
┌───────┬────────────────────────────────────────────┐
│ share │ what │
├───────┼────────────────────────────────────────────┤
│ 91.8% │ LZ4_decompress_safe — the native library │
├───────┼────────────────────────────────────────────┤
│ 5.1% │ JNI boundary │
├───────┼────────────────────────────────────────────┤
│ 1.4% │ lz4-java Java wrapper │
├───────┼────────────────────────────────────────────┤
│ 0.4% │ java.nio.Buffer position/limit bookkeeping │
├───────┼────────────────────────────────────────────┤
│ 0.3% │ Cassandra's LZ4Compressor.uncompress │
└───────┴────────────────────────────────────────────┘
{code}
Compress:
{code:java}
┌───────┬────────────────────────────────┐
│ share │ what │
├───────┼────────────────────────────────┤
│ 95.4% │ LZ4_compress_fast_extState │
├───────┼────────────────────────────────┤
│ 2.1% │ __memset_avx512_unaligned_erms │
├───────┼────────────────────────────────┤
│ 1.2% │ JNI boundary │
└───────┴────────────────────────────────┘
{code}
Decompress @ 4096, perfnorm:
{code:java}
┌─────────┬───────────┬───────────┬─────────────────┬───────┬────────────────┐
│ version │ ops/s │ cycles/op │ instructions/op │ IPC │ branch-miss/op │
├─────────┼───────────┼───────────┼─────────────────┼───────┼────────────────┤
│ 1.8.0 │ 1,723,900 │ 2,293.9 │ 10,625 │ 4.632 │ 1.14 │
├─────────┼───────────┼───────────┼─────────────────┼───────┼────────────────┤
│ 1.10.1 │ 1,584,536 │ 2,494.8 │ 10,910 │ 4.373 │ 5.48 │
├─────────┼───────────┼───────────┼─────────────────┼───────┼────────────────┤
│ 1.11.2 │ 1,628,221 │ 2,429.1 │ 10,619 │ 4.371 │ 2.47 │
└─────────┴───────────┴───────────┴─────────────────┴───────┴────────────────┘
{code}
> Upgrade lz4-java to v1.11.2
> ----------------------------
>
> Key: CASSANDRA-21564
> URL: https://issues.apache.org/jira/browse/CASSANDRA-21564
> Project: Apache Cassandra
> Issue Type: Improvement
> Components: Local/SSTable
> Reporter: Dmitry Konstantinov
> Assignee: Dmitry Konstantinov
> Priority: Normal
> Fix For: 7.x
>
>
> Currently we use: 1.10.1. It has a performance regression issue related to
> native build configuration and fixed since 1.10.4
> * [https://github.com/yawkat/lz4-java/pull/41]
> * [https://github.com/yawkat/lz4-java/issues/30]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)