Return-Path: X-Original-To: apmail-cassandra-commits-archive@www.apache.org Delivered-To: apmail-cassandra-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C897F1831A for ; Wed, 12 Aug 2015 09:23:02 +0000 (UTC) Received: (qmail 51487 invoked by uid 500); 12 Aug 2015 09:22:46 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 51444 invoked by uid 500); 12 Aug 2015 09:22:46 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 51426 invoked by uid 99); 12 Aug 2015 09:22:46 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 12 Aug 2015 09:22:46 +0000 Date: Wed, 12 Aug 2015 09:22:46 +0000 (UTC) From: "Stefania (JIRA)" To: commits@cassandra.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (CASSANDRA-9673) Improve batchlog write path MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/CASSANDRA-9673?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14693202#comment-14693202 ] Stefania commented on CASSANDRA-9673: ------------------------------------- [~iamaleksey] I still need to do mixed version testing and check the CI results but the rebase on 3.0 and the changes you requested are available for review if you want to speed things up. Else I'll post another update when the tests are complete. I've left you a question in SS with a TODO, I am no sure why in {{mutateMV}} we insert a batch mutation containing all mutations, for every single mutation, it seems wrong to me. For replaying legacy mutations, I've opted for a conversion done before replaying, which is not very efficient, but keeps the code clean. I figured mixed version clusters are transient but if it concerns you I can enhance it. > 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 > Fix For: 3.0.0 rc1 > > 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)