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/cassandra-1.1 Commit: 8a3bb80e0dfff6bfc0fba195a38baf9be7d443ca Parents: 54c647f Author: Jonathan Ellis <[email protected]> Authored: Wed Jun 27 11:40:05 2012 -0500 Committer: Jonathan Ellis <[email protected]> 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);
