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();
+ }
}