Author: slebresne
Date: Fri Nov 11 19:58:48 2011
New Revision: 1201039

URL: http://svn.apache.org/viewvc?rev=1201039&view=rev
Log:
Avoid rescheduling compaction when no compaction was executed
patch by Dan Hendry; reviewed by slebresne for CASSANDRA-3484

Modified:
    cassandra/branches/cassandra-1.0/CHANGES.txt
    
cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/compaction/CompactionManager.java

Modified: cassandra/branches/cassandra-1.0/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/CHANGES.txt?rev=1201039&r1=1201038&r2=1201039&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/CHANGES.txt (original)
+++ cassandra/branches/cassandra-1.0/CHANGES.txt Fri Nov 11 19:58:48 2011
@@ -12,6 +12,7 @@
  * (CQL) fix for counter decrement syntax (CASSANDRA-3418)
  * Fix race introduced by CASSANDRA-2503 (CASSANDRA-3482)
  * Fix incomplete deletion of delivered hints (CASSANDRA-3466)
+ * Avoid reschuling compactions when no compaction was executed 
(CASSANDRA-3483)
 Merged from 0.8:
  * Make counter shard merging thread safe (CASSANDRA-3178)
  * fix updating CF row_cache_provider (CASSANDRA-3414)

Modified: 
cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/compaction/CompactionManager.java?rev=1201039&r1=1201038&r2=1201039&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
 (original)
+++ 
cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
 Fri Nov 11 19:58:48 2011
@@ -120,6 +120,7 @@ public class CompactionManager implement
                     if (!cfs.isValid())
                         return 0;
 
+                    boolean taskExecuted = false;
                     AbstractCompactionStrategy strategy = 
cfs.getCompactionStrategy();
                     List<AbstractCompactionTask> tasks = 
strategy.getBackgroundTasks(getDefaultGcBefore(cfs));
                     for (AbstractCompactionTask task : tasks)
@@ -127,6 +128,7 @@ public class CompactionManager implement
                         if (!task.markSSTablesForCompaction())
                             continue;
 
+                        taskExecuted = true;
                         try
                         {
                             task.execute(executor);
@@ -138,7 +140,7 @@ public class CompactionManager implement
                     }
 
                     // newly created sstables might have made other 
compactions eligible
-                    if (!tasks.isEmpty())
+                    if (taskExecuted)
                         submitBackground(cfs);
                 }
                 finally 


Reply via email to