[ 
https://issues.apache.org/jira/browse/CASSANDRA-1083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12969043#action_12969043
 ] 

Tyler Hobbs edited comment on CASSANDRA-1083 at 12/7/10 5:18 PM:
-----------------------------------------------------------------

One nice thing about this strategy is that in steady state, you're compacting 
about 1/target of your total SSTable data by size.  This gives you a much 
smoother (and tunable) impact from compaction.  Recompaction of recently 
compacted data shouldn't be any more frequent than with the current strategy; 
this is especially true since there would no longer be cascading compactions.

Minor nitpick -- compactions happen after every min_compaction_threshold - 1 
flushes, so a default of 5 instead of 4 might be a good idea.

I think this should be easy to code up.  Jonathan, do you want to me to go 
ahead with this?

      was (Author: thobbs):
    One nice thing about this strategy is that in steady state, you're 
compacting about 1/target of your total SSTable data by size.  This gives you a 
much smoother (and tunable) impact from compaction.  Recompaction of recently 
compacted data shouldn't be any more frequent than with the current strategy; 
this is especially true since there would no longer be cascading compactions.

Minor nitpick -- compactions happen after every min_compaction_threshold - 1 
thresholds, so a default of 5 instead of 4 might be a good idea.

I think this should be easy to code up.  Jonathan, do you want to me to go 
ahead with this?
  
> Improvement to CompactionManger's submitMinorIfNeeded
> -----------------------------------------------------
>
>                 Key: CASSANDRA-1083
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1083
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Ryan King
>            Assignee: Tyler Hobbs
>            Priority: Minor
>             Fix For: 0.7.1
>
>         Attachments: 1083-configurable-compaction-thresholds.patch, 
> compaction_simulation.rb
>
>
> We've discovered that we are unable to tune compaction the way we want for 
> our production cluster. I think the current algorithm doesn't do this as well 
> as it could, since it doesn't sort the sstables by size before doing the 
> bucketing, which means the tuning parameters have unpredictable results.
> I looked at CASSANDRA-792, but it seems like overkill. Here's an alternative 
> proposal:
> config operations:
>  minimumCompactionThreshold
>  maximumCompactionThreshold
>  targetSSTableCount
> The first two would mean what they currently mean: the bounds on how many 
> sstables to compact in one compaction operation. The 3rd is a target for how 
> many SSTables you'd like to have.
> Pseudo code algorithm for determining whether or not to do a minor compaction:
> {noformat} 
> if sstables.length + minimumCompactionThreshold -1 > targetSSTableCount
>   sort sstables from smallest to largest
>   compact the up to maximumCompactionThreshold smallest tables
> {noformat} 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to