[
https://issues.apache.org/jira/browse/CASSANDRA-20428?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17935143#comment-17935143
]
Benedict Elliott Smith commented on CASSANDRA-20428:
----------------------------------------------------
Just chiming in to support the above approach. I am not necessarily of the view
that "flyweights" is the long term best strategy, but the patch [~nitsanw] is
preparing should be a good platform for reconsidering how we approach
compaction, and lays the groundwork for a range of follow-up performance
improvements. Compaction throughput is kind of embarrassing today, so I am
looking forward to a cleaner compaction loop we can iterate on.
The idea is to enable this for sstables that meet the implementation
limitations, and to slowly expand the supported workloads, while also exploring
other improvements.
Pushing this approach through to the full read path is a much larger task, but
this will allow us to prove out various approaches first before considering how
that might be done.
> Eliminate byte array allocation in ByteArrayAccessor.read
> ---------------------------------------------------------
>
> Key: CASSANDRA-20428
> URL: https://issues.apache.org/jira/browse/CASSANDRA-20428
> Project: Apache Cassandra
> Issue Type: Improvement
> Reporter: Jon Haddad
> Priority: Normal
> Attachments: allocation-reverse.html,
> image-2025-03-11-11-05-55-378.png
>
>
> During compaction we allocate a new byte[] in ByteArrayAccessor.read. This
> is one of the hottest paths in the codebase, hit during writes, compaction,
> creating tables, and possibly others. In my performance tests using default
> compaction settings of 64MB I see this responsible for 40% of allocations.
> This is largely what drives GC pause frequency and duration. If we are able
> to eliminate the O(N) allocations performed here, this might be one of the
> best optimizations we could do for the number of things it touches.
> Allocation profile attached.
> !image-2025-03-11-11-05-55-378.png|width=514,height=269!
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]