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 7EE47116B3 for ; Thu, 24 Apr 2014 17:43:46 +0000 (UTC) Received: (qmail 11691 invoked by uid 500); 24 Apr 2014 17:43:23 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 11401 invoked by uid 500); 24 Apr 2014 17:43:18 -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 11305 invoked by uid 99); 24 Apr 2014 17:43:16 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 24 Apr 2014 17:43:16 +0000 Date: Thu, 24 Apr 2014 17:43:16 +0000 (UTC) From: "Benedict (JIRA)" To: commits@cassandra.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Updated] (CASSANDRA-6916) Preemptive opening of compaction result 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-6916?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benedict updated CASSANDRA-6916: -------------------------------- Attachment: 6916.fixup.txt > Preemptive opening of compaction result > --------------------------------------- > > Key: CASSANDRA-6916 > URL: https://issues.apache.org/jira/browse/CASSANDRA-6916 > Project: Cassandra > Issue Type: Bug > Components: Core > Reporter: Benedict > Assignee: Benedict > Priority: Minor > Labels: performance > Fix For: 2.1 beta2 > > Attachments: 6916-stock2_1.mixed.cache_tweaks.tar.gz, 6916-stock2_1.mixed.logs.tar.gz, 6916.fixup.txt, 6916v3-preempive-open-compact.logs.gz, 6916v3-preempive-open-compact.mixed.2.logs.tar.gz, 6916v3-premptive-open-compact.mixed.cache_tweaks.2.tar.gz > > > Related to CASSANDRA-6812, but a little simpler: when compacting, we mess quite badly with the page cache. One thing we can do to mitigate this problem is to use the sstable we're writing before we've finished writing it, and to drop the regions from the old sstables from the page cache as soon as the new sstables have them (even if they're only written to the page cache). This should minimise any page cache churn, as the old sstables must be larger than the new sstable, and since both will be in memory, dropping the old sstables is at least as good as dropping the new. > The approach is quite straight-forward. Every X MB written: > # grab flushed length of index file; > # grab second to last index summary record, after excluding those that point to positions after the flushed length; > # open index file, and check that our last record doesn't occur outside of the flushed length of the data file (pretty unlikely) > # Open the sstable with the calculated upper bound > Some complications: > # must keep running copy of compression metadata for reopening with > # we need to be able to replace an sstable with itself but a different lower bound > # we need to drop the old page cache only when readers have finished -- This message was sent by Atlassian JIRA (v6.2#6252)