Return-Path: Delivered-To: apmail-cassandra-commits-archive@www.apache.org Received: (qmail 37123 invoked from network); 16 Nov 2010 18:20:03 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 16 Nov 2010 18:20:03 -0000 Received: (qmail 33704 invoked by uid 500); 16 Nov 2010 18:20:35 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 33690 invoked by uid 500); 16 Nov 2010 18:20:35 -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 33682 invoked by uid 99); 16 Nov 2010 18:20:35 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 16 Nov 2010 18:20:35 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.22] (HELO thor.apache.org) (140.211.11.22) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 16 Nov 2010 18:20:34 +0000 Received: from thor (localhost [127.0.0.1]) by thor.apache.org (8.13.8+Sun/8.13.8) with ESMTP id oAGIKEKv010804 for ; Tue, 16 Nov 2010 18:20:14 GMT Message-ID: <1762222.120001289931614275.JavaMail.jira@thor> Date: Tue, 16 Nov 2010 13:20:14 -0500 (EST) From: "Ryan King (JIRA)" To: commits@cassandra.apache.org Subject: [jira] Commented: (CASSANDRA-1658) support incremental sstable switching In-Reply-To: <18576492.44271287872720154.JavaMail.jira@thor> 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-1658?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12932574#action_12932574 ] Ryan King commented on CASSANDRA-1658: -------------------------------------- Yeah, those jumps would be rough, but we might be able to leverage the sampled keys to do something fancier? > support incremental sstable switching > ------------------------------------- > > Key: CASSANDRA-1658 > URL: https://issues.apache.org/jira/browse/CASSANDRA-1658 > Project: Cassandra > Issue Type: Improvement > Reporter: Peter Schuller > Priority: Minor > > I have been thinking about how to minimize the impact of compaction further beyond CASSANDRA-1470. 1470 deals with the impact of the compaction process itself in that it avoids going through the buffer cache; however, once compaction is complete you are still switching to new sstables which will imply cold reads. > Instead of switching all at once, one could keep both the old and new sstables around for a bit and incrementally switch over traffic to the new sstables. > A given request would go to the new or old sstable depending on e.g. the hash of the row key couple with the point in time relative to compaction completion and relative to the intended target sstable switch-over. > In terms of end-user configuration/mnemonics, one would specify, for a given column family, something like "sstable transition period per gb of data" or similar. The "per gb of data" would refer to the size of the newly written sstable after a compaction. So; for a major compaction you would wait for a very significant period of time since the entire database just went cold. For a minor compaction, you would only wait for a short period of time. > The result should be a reasonable negative impact on e.g. disk space usage, but hopefully a very significant impact in terms of making the sstable transition as smooth as possible for the node. > I like this because it feels pretty simple, is not relying on OS specific features or otherwise rely on specific support from the OS other than a "well functioning cache mechanism", and does not imply something hugely significant like writing our own page cache layer. The performance w.r.t. CPU should be very small, but the improvement in terms of disk I/O should be very significant for workloads where it matters. > The feature would be optional and per-sstable (or possibly global for the node). -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.