Updated Branches:
  refs/heads/trunk 4c28cfb57 -> e9c3ee979

comments and simplify comparator


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e9c3ee97
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e9c3ee97
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e9c3ee97

Branch: refs/heads/trunk
Commit: e9c3ee979f1f0dca49b002a2892bd23c6f69235c
Parents: 4c28cfb
Author: Jonathan Ellis <jbel...@apache.org>
Authored: Wed Apr 3 11:39:13 2013 -0500
Committer: Jonathan Ellis <jbel...@apache.org>
Committed: Wed Apr 3 11:39:21 2013 -0500

----------------------------------------------------------------------
 .../compaction/SizeTieredCompactionStrategy.java   |   16 +++++---------
 1 files changed, 6 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/e9c3ee97/src/java/org/apache/cassandra/db/compaction/SizeTieredCompactionStrategy.java
----------------------------------------------------------------------
diff --git 
a/src/java/org/apache/cassandra/db/compaction/SizeTieredCompactionStrategy.java 
b/src/java/org/apache/cassandra/db/compaction/SizeTieredCompactionStrategy.java
index 8d990e5..6febc07 100644
--- 
a/src/java/org/apache/cassandra/db/compaction/SizeTieredCompactionStrategy.java
+++ 
b/src/java/org/apache/cassandra/db/compaction/SizeTieredCompactionStrategy.java
@@ -19,8 +19,8 @@ package org.apache.cassandra.db.compaction;
 
 import java.util.*;
 import java.util.Map.Entry;
-import java.util.concurrent.Callable;
 
+import com.google.common.primitives.Longs;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -28,7 +28,6 @@ import org.apache.cassandra.cql3.CFPropDefs;
 import org.apache.cassandra.db.ColumnFamilyStore;
 import org.apache.cassandra.exceptions.ConfigurationException;
 import org.apache.cassandra.io.sstable.SSTableReader;
-import org.apache.cassandra.utils.FBUtilities;
 import org.apache.cassandra.utils.Pair;
 
 public class SizeTieredCompactionStrategy extends AbstractCompactionStrategy
@@ -75,6 +74,7 @@ public class SizeTieredCompactionStrategy extends 
AbstractCompactionStrategy
         logger.debug("Compaction buckets are {}", buckets);
         updateEstimatedCompactionsByTasks(buckets);
 
+        // skip buckets containing less than minThreshold sstables, and limit 
other buckets to maxThreshold entries
         List<List<SSTableReader>> prunedBuckets = new 
ArrayList<List<SSTableReader>>();
         for (List<SSTableReader> bucket : buckets)
         {
@@ -92,10 +92,10 @@ public class SizeTieredCompactionStrategy extends 
AbstractCompactionStrategy
             prunedBuckets.add(prunedBucket);
         }
 
+        // if there is no sstable to compact in standard way, try compacting 
single sstable whose droppable tombstone
+        // ratio is greater than threshold.
         if (prunedBuckets.isEmpty())
         {
-            // if there is no sstable to compact in standard way, try 
compacting single sstable whose droppable tombstone
-            // ratio is greater than threshold.
             for (List<SSTableReader> bucket : buckets)
             {
                 for (SSTableReader table : bucket)
@@ -109,16 +109,12 @@ public class SizeTieredCompactionStrategy extends 
AbstractCompactionStrategy
                 return Collections.emptyList();
         }
 
+        // prefer compacting buckets with smallest average size; that will 
yield the fastest improvement for read performance
         return Collections.min(prunedBuckets, new 
Comparator<List<SSTableReader>>()
         {
             public int compare(List<SSTableReader> o1, List<SSTableReader> o2)
             {
-                long n = avgSize(o1) - avgSize(o2);
-                if (n < 0)
-                    return -1;
-                if (n > 0)
-                    return 1;
-                return 0;
+                return Longs.compare(avgSize(o1), avgSize(o2));
             }
 
             private long avgSize(List<SSTableReader> sstables)

Reply via email to