[
https://issues.apache.org/jira/browse/CASSANDRA-9797?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14629895#comment-14629895
]
Benedict commented on CASSANDRA-9797:
-------------------------------------
{quote}
so, let's shit it.
EDIT: (accidental yes/no swap)
{quote}
Great editing ;)
More seriously, this looks to affect 2.2, and any writeBytes or writeUTF call,
which could be very costly. I think perhaps the correct thing to do is
partially revert CASSANDRA-8709, which is what introduced this change.
CASSANDRA-9500 is the best solution, but not sure when we'll get to that. I had
been hoping it would be in by 3.0, but it's looking unlikely.
> Don't wrap byte arrays in SequentialWriter
> ------------------------------------------
>
> Key: CASSANDRA-9797
> URL: https://issues.apache.org/jira/browse/CASSANDRA-9797
> Project: Cassandra
> Issue Type: Improvement
> Reporter: Sylvain Lebresne
> Assignee: Sylvain Lebresne
> Priority: Minor
> Labels: performance
> Fix For: 3.x
>
> Attachments: 9797.txt
>
>
> While profiling a simple stress write run ({{cassandra-stress write n=2000000
> -rate threads=50}} to be precise) with Mission Control, I noticed that a non
> trivial amount of heap pressure was due to the {{ByteBuffer.wrap()}} call in
> {{SequentialWriter.write(byte[])}}. Basically, when writing a byte array, we
> wrap it in a ByteBuffer to reuse the {{SequentialWriter.write(ByteBuffer)}}
> method. One could have hoped this wrapping would be stack allocated, but if
> Mission Control isn't lying (and I was told it's fairly honest on that
> front), it's not. And we do use that {{write(byte[])}} method quite a bit,
> especially with the new vint encodings since they use a {{byte[]}} thread
> local buffer and call that method.
> Anyway, it sounds very simple to me to have a more direct {{write(byte[])}}
> method, so attaching a patch to do that. A very quick local benchmark seems
> to show a little bit less allocation and a slight edge for the branch with
> this patch (on top of CASSANDRA-9705 I must add), but that local bench was
> far from scientific so happy if someone that knows how to use our perf
> service want to give that patch a shot.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)