[ 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