You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Nitsan Wakart (JIRA)" <ji...@apache.org> on 2016/03/24 11:34:25 UTC

[jira] [Commented] (CASSANDRA-11421) Eliminate allocations of byte array for UTF8 String serializations

    [ https://issues.apache.org/jira/browse/CASSANDRA-11421?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15210061#comment-15210061 ] 

Nitsan Wakart commented on CASSANDRA-11421:
-------------------------------------------

Note that there's a better solution using the later Netty ByteBufUtil::encodeUtf8
https://github.com/netty/netty/blob/4.1/buffer/src/main/java/io/netty/buffer/ByteBufUtil.java#L379
This would require updating your dependencies or copying the code over as temporary measure.

> Eliminate allocations of byte array for UTF8 String serializations
> ------------------------------------------------------------------
>
>                 Key: CASSANDRA-11421
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-11421
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Nitsan Wakart
>
> When profiling a read workload (YCSB workload c) on Cassandra 3.2.1 I noticed a large part of allocation profile was generated from String.getBytes() calls on CBUtil::writeString
> I have fixed up the code to use a thread local cached ByteBuffer and CharsetEncoder to eliminate the allocations. This results in improved allocation profile, and a mild improvement in performance.
> The fix is available here:
> https://github.com/nitsanw/cassandra/tree/fix-write-string-allocation



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)