Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 16665ee19 -> 69b7dd327
Ignore fully expired sstables when finding min timestamp Patch by marcuse; reviewed by slebresne for CASSANDRA-9572 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/9e60611f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/9e60611f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/9e60611f Branch: refs/heads/cassandra-2.1 Commit: 9e60611fb807ad1bd03a13ef1fe55bf905100064 Parents: 3ddd17b Author: Marcus Eriksson <marc...@apache.org> Authored: Thu Jun 11 08:33:54 2015 +0200 Committer: Marcus Eriksson <marc...@apache.org> Committed: Fri Jun 12 18:50:01 2015 +0200 ---------------------------------------------------------------------- .../apache/cassandra/db/compaction/CompactionController.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/9e60611f/src/java/org/apache/cassandra/db/compaction/CompactionController.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionController.java b/src/java/org/apache/cassandra/db/compaction/CompactionController.java index 7a4b7d9..59453cc 100644 --- a/src/java/org/apache/cassandra/db/compaction/CompactionController.java +++ b/src/java/org/apache/cassandra/db/compaction/CompactionController.java @@ -102,7 +102,12 @@ public class CompactionController long minTimestamp = Long.MAX_VALUE; for (SSTableReader sstable : overlapping) - minTimestamp = Math.min(minTimestamp, sstable.getMinTimestamp()); + { + // Overlapping might include fully expired sstables. What we care about here is + // the min timestamp of the overlapping sstables that actually contain live data. + if (sstable.getSSTableMetadata().maxLocalDeletionTime >= gcBefore) + minTimestamp = Math.min(minTimestamp, sstable.getMinTimestamp()); + } for (SSTableReader candidate : compacting) {