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 426DE10274 for ; Thu, 28 Nov 2013 13:16:42 +0000 (UTC) Received: (qmail 18810 invoked by uid 500); 28 Nov 2013 13:16:40 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 18650 invoked by uid 500); 28 Nov 2013 13:16:39 -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 18629 invoked by uid 99); 28 Nov 2013 13:16:38 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 28 Nov 2013 13:16:38 +0000 Date: Thu, 28 Nov 2013 13:16:37 +0000 (UTC) From: "Benedict (JIRA)" To: commits@cassandra.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (CASSANDRA-3578) Multithreaded commitlog 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-3578?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13834803#comment-13834803 ] Benedict commented on CASSANDRA-3578: ------------------------------------- Thinking a little more on the PCLE guarantees about syncing, I think perhaps a better scheme is to attempt to sync() twice every "poll interval" (or once every 0.49*interval), and to only update the heartbeat at the end of a sync(); at the moment I update before and after, to deal with the fact that the blockInterval and pollInterval are approximately the same (so we don't simply block every time we start a sync()). This means you could lose upto 2x interval commits. I addressed this in a previous comment, but didn't deal with it in the code. It also occurs to me that pollInterval is a really bad name, and it should be called maxSyncInterval or something. > Multithreaded commitlog > ----------------------- > > Key: CASSANDRA-3578 > URL: https://issues.apache.org/jira/browse/CASSANDRA-3578 > Project: Cassandra > Issue Type: Improvement > Reporter: Jonathan Ellis > Assignee: Benedict > Priority: Minor > Labels: performance > Attachments: 0001-CASSANDRA-3578.patch, ComitlogStress.java, Current-CL.png, Multi-Threded-CL.png, latency.svg, oprate.svg, parallel_commit_log_2.patch > > > Brian Aker pointed out a while ago that allowing multiple threads to modify the commitlog simultaneously (reserving space for each with a CAS first, the way we do in the SlabAllocator.Region.allocate) can improve performance, since you're not bottlenecking on a single thread to do all the copying and CRC computation. > Now that we use mmap'd CommitLog segments (CASSANDRA-3411) this becomes doable. > (moved from CASSANDRA-622, which was getting a bit muddled.) -- This message was sent by Atlassian JIRA (v6.1#6144)