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