You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sl...@apache.org on 2011/10/27 18:05:04 UTC

svn commit: r1189822 - in /cassandra/branches/cassandra-1.0: CHANGES.txt src/java/org/apache/cassandra/db/compaction/AbstractCompactionTask.java src/java/org/apache/cassandra/db/compaction/LeveledCompactionTask.java

Author: slebresne
Date: Thu Oct 27 16:05:04 2011
New Revision: 1189822

URL: http://svn.apache.org/viewvc?rev=1189822&view=rev
Log:
patch by slebresne; reviewed by jbellis for CASSANDRA-3408

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

Modified: cassandra/branches/cassandra-1.0/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/CHANGES.txt?rev=1189822&r1=1189821&r2=1189822&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/CHANGES.txt (original)
+++ cassandra/branches/cassandra-1.0/CHANGES.txt Thu Oct 27 16:05:04 2011
@@ -26,6 +26,7 @@
    (CASSANDRA-2997)
  * Break bloom filters up to avoid heap fragmentation (CASSANDRA-2466)
  * fix cassandra hanging on jsvc stop (CASSANDRA-3302)
+ * Avoid leveled compaction getting blocked on errors (CASSANDRA-3408)
 Merged from 0.8:
  * (CQL) update grammar to require key clause in DELETE statement
    (CASSANDRA-3349)

Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/compaction/AbstractCompactionTask.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/compaction/AbstractCompactionTask.java?rev=1189822&r1=1189821&r2=1189822&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/compaction/AbstractCompactionTask.java (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/compaction/AbstractCompactionTask.java Thu Oct 27 16:05:04 2011
@@ -67,7 +67,10 @@ public abstract class AbstractCompaction
         Set<SSTableReader> marked = cfs.getDataTracker().markCompacting(sstables, min, max);
 
         if (marked == null || marked.isEmpty())
+        {
+            cancel();
             return false;
+        }
 
         this.sstables = marked;
         return true;
@@ -77,4 +80,8 @@ public abstract class AbstractCompaction
     {
         cfs.getDataTracker().unmarkCompacting(sstables);
     }
+
+    // Can be overriden for action that need to be performed if the task won't
+    // execute (if sstable can't be marked successfully)
+    protected void cancel() {}
 }

Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/compaction/LeveledCompactionTask.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/compaction/LeveledCompactionTask.java?rev=1189822&r1=1189821&r2=1189822&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/compaction/LeveledCompactionTask.java (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/compaction/LeveledCompactionTask.java Thu Oct 27 16:05:04 2011
@@ -52,9 +52,15 @@ public class LeveledCompactionTask exten
     @Override
     public int execute(CompactionManager.CompactionExecutorStatsCollector collector) throws IOException
     {
-        int n = super.execute(collector);
-        latch.countDown();
-        return n;
+        try
+        {
+            int n = super.execute(collector);
+            return n;
+        }
+        finally
+        {
+            latch.countDown();
+        }
     }
 
     public boolean isDone()
@@ -79,4 +85,10 @@ public class LeveledCompactionTask exten
     {
         return false;
     }
+
+    @Override
+    protected void cancel()
+    {
+        latch.countDown();
+    }
 }