Merge branch 'cassandra-2.0' into trunk
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c43a59cc Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c43a59cc Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c43a59cc Branch: refs/heads/trunk Commit: c43a59cccadd48c005cb4da618f6140b46d829f0 Parents: 487e3de d6e0ca0 Author: Yuki Morishita <[email protected]> Authored: Wed Aug 21 15:36:15 2013 -0500 Committer: Yuki Morishita <[email protected]> Committed: Wed Aug 21 15:36:15 2013 -0500 ---------------------------------------------------------------------- CHANGES.txt | 3 +++ .../apache/cassandra/db/compaction/LeveledManifest.java | 12 ++++++------ 2 files changed, 9 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/c43a59cc/CHANGES.txt ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/c43a59cc/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/db/compaction/LeveledManifest.java index 7a0a927,597b851..e46c060 --- a/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java +++ b/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java @@@ -457,13 -457,13 +457,13 @@@ public class LeveledManifes // if the overlapping ones are already busy in a compaction, leave it out. // TODO try to find a set of L0 sstables that only overlaps with non-busy L1 sstables candidates = Sets.union(candidates, overlapping(candidates, generations[1])); - // check overlap with L0 compacting sstables to make sure we are not generating overlap in L1. - Iterable<SSTableReader> compactingL0 = Iterables.filter(generations[0], Predicates.in(compacting)); - if (!Sets.intersection(candidates, compacting).isEmpty() || !overlapping(candidates, compactingL0).isEmpty()) - return Collections.emptyList(); } - - return candidates.size() > 1 ? candidates : Collections.<SSTableReader>emptyList(); + // check overlap with L0 compacting sstables to make sure we are not generating overlap in L1. + Iterable<SSTableReader> compactingL0 = Iterables.filter(generations[0], Predicates.in(compacting)); - if (candidates.size() < 2 || !Sets.intersection(candidates, compacting).isEmpty() || !overlapping(candidates, compactingL0).isEmpty()) ++ if (candidates.size() < 2 || !overlapping(candidates, compactingL0).isEmpty()) + return Collections.emptyList(); + else + return candidates; } // for non-L0 compactions, pick up where we left off last time
