[ 
https://issues.apache.org/jira/browse/CASSANDRA-3254?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Greg Hinkle updated CASSANDRA-3254:
-----------------------------------

    Attachment: cassandra-0.8-3254-v2.txt

V2 removes the extra copy. I wasn't sure if you wanted the additional code 
change from your message, but this is what I was testing with. I also wasn't 
sure if packIt was considered an API since it is public (but not used anywhere 
else in the codebase).

I tested a n=3,rf=3 cluster with a portion of our app that sends large batches 
of counter mutations (mostly in separate rows). The separate replicate on write 
messages per row are where this has the biggest impact for us. The small test 
increments 1M counters in separate rows.

The fix reduces total network traffic by about 360MB or 30% of 1,148MB (as 
measured at the network interfaces). It is roughly 10% faster. Though the 
network obviously makes the timings vary a fair amount, the network traffic 
numbers are consistent.

> MessagingService sends blank bytes
> ----------------------------------
>
>                 Key: CASSANDRA-3254
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3254
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 0.8.6
>            Reporter: Greg Hinkle
>         Attachments: cassandra-0.8-3254-v2.txt, cassandra-0.8-3254.txt
>
>
> MessagingService is calling DataOutputBuffer.getData() instead of 
> .asByteArray() in two places. This results in always sending the full buffer 
> size of at least 128 bytes even if the message is smaller. For messages like 
> gossip and single col mutations its around 40 to 80 bytes wasted per message.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to