You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2012/06/27 18:40:47 UTC

[3/4] git commit: Fix cleanup not deleting index entries patch by jbellis; reviewed by slebresne for CASSANDRA-4379

Fix cleanup not deleting index entries
patch by jbellis; reviewed by slebresne for CASSANDRA-4379


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

Branch: refs/heads/trunk
Commit: 8a3bb80e0dfff6bfc0fba195a38baf9be7d443ca
Parents: 54c647f
Author: Jonathan Ellis <jb...@apache.org>
Authored: Wed Jun 27 11:40:05 2012 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Wed Jun 27 11:40:05 2012 -0500

----------------------------------------------------------------------
 CHANGES.txt                                        |    1 +
 .../cassandra/db/compaction/CompactionManager.java |    8 +++++---
 2 files changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/8a3bb80e/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 47f21b8..8918dee 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 1.1.2
+ * Fix cleanup not deleting index entries (CASSANDRA-4379)
  * Use correct partitioner when saving + loading caches (CASSANDRA-4331)
  * Check schema before trying to export sstable (CASSANDRA-2760)
  * Raise a meaningful exception instead of NPE when PFS encounters

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8a3bb80e/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
index 46aaa7d..fb5b253 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
@@ -683,16 +683,19 @@ public class CompactionManager implements CompactionManagerMBean
         assert !cfs.isIndex();
         Table table = cfs.table;
         Collection<Range<Token>> ranges = StorageService.instance.getLocalRanges(table.name);
-        boolean isCommutative = cfs.metadata.getDefaultValidator().isCommutative();
         if (ranges.isEmpty())
         {
             logger.info("Cleanup cannot run before a node has joined the ring");
             return;
         }
 
+        boolean isCommutative = cfs.metadata.getDefaultValidator().isCommutative();
+        Collection<ByteBuffer> indexedColumns = cfs.indexManager.getIndexedColumns();
+
         for (SSTableReader sstable : sstables)
         {
-            if (!new Bounds<Token>(sstable.first.token, sstable.last.token).intersects(ranges))
+            if (indexedColumns.isEmpty()
+                && !new Bounds<Token>(sstable.first.token, sstable.last.token).intersects(ranges))
             {
                 cfs.replaceCompactedSSTables(Arrays.asList(sstable), Collections.<SSTableReader>emptyList(), OperationType.CLEANUP);
                 continue;
@@ -720,7 +723,6 @@ public class CompactionManager implements CompactionManagerMBean
 
             SSTableScanner scanner = sstable.getDirectScanner();
             long rowsRead = 0;
-            Collection<ByteBuffer> indexedColumns = cfs.indexManager.getIndexedColumns();
             List<IColumn> indexedColumnsInRow = null;
 
             CleanupInfo ci = new CleanupInfo(sstable, scanner);