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

Benedict commented on CASSANDRA-11421:
--------------------------------------

I wouldn't necessarily consider it a good idea to cache buffers of unbounded 
size.  Right now it is probably fine, but it is fragile in the face of possible 
future changes.  This is a common problem that should probably be solved 
generically, though no doubt not here.  It's a tremendous shame this encoding 
differs from DataOutputPlus.writeUTF, and that both persist a length up-front.


> 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)

Reply via email to