Return-Path: Delivered-To: apmail-cassandra-commits-archive@www.apache.org Received: (qmail 66366 invoked from network); 31 Mar 2011 23:44:46 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 31 Mar 2011 23:44:46 -0000 Received: (qmail 84392 invoked by uid 500); 31 Mar 2011 23:44:46 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 84364 invoked by uid 500); 31 Mar 2011 23:44:45 -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 84271 invoked by uid 99); 31 Mar 2011 23:44:45 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 31 Mar 2011 23:44:45 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,T_RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.116] (HELO hel.zones.apache.org) (140.211.11.116) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 31 Mar 2011 23:44:43 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id D2D4B8C73F for ; Thu, 31 Mar 2011 23:44:05 +0000 (UTC) Date: Thu, 31 Mar 2011 23:44:05 +0000 (UTC) From: "Ryan King (JIRA)" To: commits@cassandra.apache.org Message-ID: <1921426428.26208.1301615045860.JavaMail.tomcat@hel.zones.apache.org> In-Reply-To: <572486275.11963.1297467778049.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] [Commented] (CASSANDRA-2156) Compaction Throttling MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/CASSANDRA-2156?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13014298#comment-13014298 ] Ryan King commented on CASSANDRA-2156: -------------------------------------- This has been a big improvement for us in production. It'd be nice to get more eyes on it for 0.8. > Compaction Throttling > --------------------- > > Key: CASSANDRA-2156 > URL: https://issues.apache.org/jira/browse/CASSANDRA-2156 > Project: Cassandra > Issue Type: New Feature > Reporter: Stu Hood > Fix For: 0.8 > > Attachments: 0005-Throttle-total-compaction-to-a-configurable-throughput.txt, for-0.6-0001-Throttle-compaction-to-a-fixed-throughput.txt, for-0.6-0002-Make-compaction-throttling-configurable.txt > > > Compaction is currently relatively bursty: we compact as fast as we can, and then we wait for the next compaction to be possible ("hurry up and wait"). > Instead, to properly amortize compaction, you'd like to compact exactly as fast as you need to to keep the sstable count under control. > For every new level of compaction, you need to increase the rate that you compact at: a rule of thumb that we're testing on our clusters is to determine the maximum number of buckets a node can support (aka, if the 15th bucket holds 750 GB, we're not going to have more than 15 buckets), and then multiply the flush throughput by the number of buckets to get a minimum compaction throughput to maintain your sstable count. > Full explanation: for a min compaction threshold of {{T}}, the bucket at level {{N}} can contain {{SsubN = T^N}} 'units' (unit == memtable's worth of data on disk). Every time a new unit is added, it has a {{1/SsubN}} chance of causing the bucket at level N to fill. If the bucket at level N fills, it causes {{SsubN}} units to be compacted. So, for each active level in your system you have {{SubN * 1 / SsubN}}, or {{1}} amortized unit to compact any time a new unit is added. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira