[ https://issues.apache.org/jira/browse/CASSANDRA-9673?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14712198#comment-14712198 ]
Aleksey Yeschenko commented on CASSANDRA-9673: ---------------------------------------------- As for migration, my preference would be to make it happen at the borders only. So I'd ask you again to move this live upgrade batchlog mutation conversion to {{MutationVerbHandler}}, and away from {{Keyspace::apply}}. The latter is just too deep. A standalone test for {{LegacyBatchMigrator::converBatchEntries}} would be nice. I would also prefer to move the whole package to o.a.c.batchlog instead of o.a.c.db.batch. o.a.c.db is overpopulated, and, frankly, meaningless. I've been depopulating it slowly - with schema and hints being separate top-level packages already. > Improve batchlog write path > --------------------------- > > Key: CASSANDRA-9673 > URL: https://issues.apache.org/jira/browse/CASSANDRA-9673 > Project: Cassandra > Issue Type: Improvement > Reporter: Aleksey Yeschenko > Assignee: Stefania > Labels: performance > Fix For: 3.0 beta 2 > > Attachments: 9673_001.tar.gz, 9673_004.tar.gz, > gc_times_first_node_patched_004.png, gc_times_first_node_trunk_004.png > > > Currently we allocate an on-heap {{ByteBuffer}} to serialize the batched > mutations into, before sending it to a distant node, generating unnecessary > garbage (potentially a lot of it). > With materialized views using the batchlog, it would be nice to optimise the > write path: > - introduce a new verb ({{Batch}}) > - introduce a new message ({{BatchMessage}}) that would encapsulate the > mutations, expiration, and creation time (similar to {{HintMessage}} in > CASSANDRA-6230) > - have MS serialize it directly instead of relying on an intermediate buffer > To avoid merely shifting the temp buffer to the receiving side(s) we should > change the structure of the batchlog table to use a list or a map of > individual mutations. -- This message was sent by Atlassian JIRA (v6.3.4#6332)