diff --git a/CHANGES.txt b/CHANGES.txt index 8423e2f3cc..7b4c4ca841 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -3,6 +3,7 @@ * more efficient allocation of small bloom filters (CASSANDRA-3618) * CLibrary.createHardLinkWithExec() to check for errors (CASSANDRA-3101) * fsync the directory after new sstable or commitlog segment are created (CASSANDRA-3250) + * Avoid creating empty and non cleaned writer during compaction (CASSANDRA-3616) Merged from 0.8: * prevent new nodes from thinking down nodes are up forever (CASSANDRA-3626) diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionTask.java b/src/java/org/apache/cassandra/db/compaction/CompactionTask.java index fe85e89cb0..a42b9ff5b9 100644 --- a/src/java/org/apache/cassandra/db/compaction/CompactionTask.java +++ b/src/java/org/apache/cassandra/db/compaction/CompactionTask.java @@ -175,9 +175,12 @@ public class CompactionTask extends AbstractCompactionTask SSTableReader toIndex = writer.closeAndOpenReader(getMaxDataAge(toCompact)); cachedKeyMap.put(toIndex, cachedKeys); sstables.add(toIndex); - writer = cfs.createCompactionWriter(keysPerSSTable, compactionFileLocation, toCompact); - writers.add(writer); - cachedKeys = new HashMap(); + if (nni.hasNext()) + { + writer = cfs.createCompactionWriter(keysPerSSTable, compactionFileLocation, toCompact); + writers.add(writer); + cachedKeys = new HashMap(); + } } } }