cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ryan King (JIRA)" <j...@apache.org>
Subject [jira] Updated: (CASSANDRA-1083) Improvement to CompactionManger's submitMinorIfNeeded
Date Thu, 13 May 2010 01:18:43 GMT

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

Ryan King updated CASSANDRA-1083:
---------------------------------

    Attachment: compaction_simulation.rb

I wrote this ruby script to simulate what would happen with my proposal.

It does, indeed, keep the number of SSTables bounded, but at the cost of doing more re-compactions
of data. Once you hit the steady state the number of compactions goes up (you're basically
doing one every minCompationThreshold flushes).

It seems to me like we need to find some compromise here.

> Improvement to CompactionManger's submitMinorIfNeeded
> -----------------------------------------------------
>
>                 Key: CASSANDRA-1083
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1083
>             Project: Cassandra
>          Issue Type: Improvement
>    Affects Versions: 0.6.1
>            Reporter: Ryan King
>            Assignee: Ryan King
>            Priority: Minor
>         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.


Mime
View raw message