You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ma...@apache.org on 2016/02/08 09:05:31 UTC

[02/10] cassandra git commit: Avoid mixing repaired and unrepaired sstables in DTCS

Avoid mixing repaired and unrepaired sstables in DTCS

Patch by Blake Eggleston; reviewed by marcuse for CASSANDRA-11113


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

Branch: refs/heads/cassandra-2.2
Commit: dd23adf1411e1ccd55a7d89437eccbbd916807f1
Parents: 26aa19e
Author: Blake Eggleston <bd...@gmail.com>
Authored: Fri Feb 5 17:23:48 2016 +0100
Committer: Marcus Eriksson <ma...@apache.org>
Committed: Mon Feb 8 08:49:37 2016 +0100

----------------------------------------------------------------------
 CHANGES.txt                                                 | 1 +
 .../db/compaction/DateTieredCompactionStrategy.java         | 9 +++++----
 2 files changed, 6 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd23adf1/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 1793c32..054ad1d 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.13
+ * Avoid major compaction mixing repaired and unrepaired sstables in DTCS (CASSANDRA-11113)
  * test_bulk_round_trip_blogposts is failing occasionally (CASSANDRA-10938)
  * Fix isJoined return true only after becoming cluster member (CASANDRA-11007)
  * Fix bad gossip generation seen in long-running clusters (CASSANDRA-10969)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd23adf1/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java b/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java
index ae684ec..64a599d 100644
--- a/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java
+++ b/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java
@@ -385,11 +385,12 @@ public class DateTieredCompactionStrategy extends AbstractCompactionStrategy
     @Override
     public synchronized Collection<AbstractCompactionTask> getMaximalTask(int gcBefore)
     {
-        Iterable<SSTableReader> sstables = cfs.markAllCompacting();
-        if (sstables == null)
+        Iterable<SSTableReader> filteredSSTables = filterSuspectSSTables(sstables);
+        if (Iterables.isEmpty(filteredSSTables))
             return null;
-
-        return Collections.<AbstractCompactionTask>singleton(new CompactionTask(cfs, sstables, gcBefore, false));
+        if (!cfs.getDataTracker().markCompacting(ImmutableList.copyOf(filteredSSTables)))
+            return null;
+        return Collections.<AbstractCompactionTask>singleton(new CompactionTask(cfs, filteredSSTables, gcBefore, false));
     }
 
     @Override