[ 
https://issues.apache.org/jira/browse/CASSANDRA-2156?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stu Hood updated CASSANDRA-2156:
--------------------------------

    Attachment: for-0.6-0002-Make-compaction-throttling-configurable.txt
                for-0.6-0001-Throttle-compaction-to-a-fixed-throughput.txt

Attaching a patch for 0.6 that implements compaction throttling for a fixed 
value.

Since it is relatively easy to automatically figure out the proper throughput, 
we might want to make throttling automatic rather than exposing a config option.

> 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: 
> 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

        

Reply via email to