Return-Path: X-Original-To: apmail-cassandra-commits-archive@www.apache.org Delivered-To: apmail-cassandra-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 66BAF11F6F for ; Mon, 1 Sep 2014 13:50:58 +0000 (UTC) Received: (qmail 44499 invoked by uid 500); 1 Sep 2014 13:50:58 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 44395 invoked by uid 500); 1 Sep 2014 13:50:58 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 44164 invoked by uid 99); 1 Sep 2014 13:50:57 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 01 Sep 2014 13:50:57 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 9D25295793B; Mon, 1 Sep 2014 13:50:57 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: marcuse@apache.org To: commits@cassandra.apache.org Date: Mon, 01 Sep 2014 13:50:59 -0000 Message-Id: In-Reply-To: <379c05faa4f2455bb5d60ec551cdf022@git.apache.org> References: <379c05faa4f2455bb5d60ec551cdf022@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [3/4] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1.0 Merge branch 'cassandra-2.0' into cassandra-2.1.0 Conflicts: CHANGES.txt src/java/org/apache/cassandra/db/DataTracker.java src/java/org/apache/cassandra/db/compaction/LeveledManifest.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ef890455 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ef890455 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ef890455 Branch: refs/heads/cassandra-2.1 Commit: ef890455061dcbbda5d9d1cad187fc43a664f4d4 Parents: de62175 968ffd8 Author: Marcus Eriksson Authored: Mon Sep 1 15:41:57 2014 +0200 Committer: Marcus Eriksson Committed: Mon Sep 1 15:41:57 2014 +0200 ---------------------------------------------------------------------- CHANGES.txt | 1 + src/java/org/apache/cassandra/db/DataTracker.java | 12 ++++++++++++ .../apache/cassandra/db/compaction/LeveledManifest.java | 5 ++++- .../org/apache/cassandra/io/sstable/SSTableReader.java | 5 +++++ 4 files changed, 22 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/ef890455/CHANGES.txt ---------------------------------------------------------------------- diff --cc CHANGES.txt index c202586,6d77f3c..477a332 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -20,39 -14,24 +20,40 @@@ Merged from 2.0 * Configure system.paxos with LeveledCompactionStrategy (CASSANDRA-7753) * Fix ALTER clustering column type from DateType to TimestampType when using DESC clustering order (CASSANRDA-7797) - * Stop inheriting liveRatio and liveRatioComputedAt from previous - memtables (CASSANDRA-7796) * Throw EOFException if we run out of chunks in compressed datafile (CASSANDRA-7664) - * Throw InvalidRequestException when queries contain relations on entire - collection columns (CASSANDRA-7506) * Fix PRSI handling of CQL3 row markers for row cleanup (CASSANDRA-7787) - * (cqlsh) enable CTRL-R history search with libedit (CASSANDRA-7577) * Fix dropping collection when it's the last regular column (CASSANDRA-7744) * Properly reject operations on list index with conditions (CASSANDRA-7499) - * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252) + * Make StreamReceiveTask thread safe and gc friendly (CASSANDRA-7795) + * Validate empty cell names from counter updates (CASSANDRA-7798) +Merged from 1.2: ++ * Don't allow compacted sstables to be marked as compacting (CASSANDRA-7145) + * Track expired tombstones (CASSANDRA-7810) + + +2.1.0-rc6 + * Fix OOM issue from netty caching over time (CASSANDRA-7743) + * json2sstable couldn't import JSON for CQL table (CASSANDRA-7477) + * Invalidate all caches on table drop (CASSANDRA-7561) + * Skip strict endpoint selection for ranges if RF == nodes (CASSANRA-7765) + * Fix Thrift range filtering without 2ary index lookups (CASSANDRA-7741) + * Add tracing entries about concurrent range requests (CASSANDRA-7599) + * (cqlsh) Fix DESCRIBE for NTS keyspaces (CASSANDRA-7729) + * Remove netty buffer ref-counting (CASSANDRA-7735) + * Pass mutated cf to index updater for use by PRSI (CASSANDRA-7742) + * Include stress yaml example in release and deb (CASSANDRA-7717) + * workaround for netty issue causing corrupted data off the wire (CASSANDRA-7695) + * cqlsh DESC CLUSTER fails retrieving ring information (CASSANDRA-7687) + * Fix binding null values inside UDT (CASSANDRA-7685) + * Fix UDT field selection with empty fields (CASSANDRA-7670) + * Bogus deserialization of static cells from sstable (CASSANDRA-7684) + * Fix NPE on compaction leftover cleanup for dropped table (CASSANDRA-7770) +Merged from 2.0: * (cqlsh) Wait up to 10 sec for a tracing session (CASSANDRA-7222) * Fix NPE in FileCacheService.sizeInBytes (CASSANDRA-7756) - * (cqlsh) cqlsh should automatically disable tracing when selecting - from system_traces (CASSANDRA-7641) - * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927) - * Don't depend on cassandra config for nodetool ring (CASSANDRA-7508) - * (cqlsh) Fix failing cqlsh formatting tests (CASSANDRA-7703) + * Remove duplicates from StorageService.getJoiningNodes (CASSANDRA-7478) + * Clone token map outside of hot gossip loops (CASSANDRA-7758) * Fix MS expiring map timeout for Paxos messages (CASSANDRA-7752) * Do not flush on truncate if durable_writes is false (CASSANDRA-7750) * Give CRR a default input_cql Statement (CASSANDRA-7226) http://git-wip-us.apache.org/repos/asf/cassandra/blob/ef890455/src/java/org/apache/cassandra/db/DataTracker.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/db/DataTracker.java index 097d8cc,d41181b..857e8bd --- a/src/java/org/apache/cassandra/db/DataTracker.java +++ b/src/java/org/apache/cassandra/db/DataTracker.java @@@ -192,18 -199,26 +192,30 @@@ public class DataTracke public boolean markCompacting(Iterable sstables) { assert sstables != null && !Iterables.isEmpty(sstables); - - View currentView = view.get(); - Set inactive = Sets.difference(ImmutableSet.copyOf(sstables), currentView.compacting); - if (inactive.size() < Iterables.size(sstables)) - return false; - - if (Iterables.any(sstables, new Predicate() + while (true) { - @Override - public boolean apply(SSTableReader sstable) + View currentView = view.get(); + Set set = ImmutableSet.copyOf(sstables); + Set inactive = Sets.difference(set, currentView.compacting); + if (inactive.size() < set.size()) + return false; + ++ if (Iterables.any(set, new Predicate() ++ { ++ @Override ++ public boolean apply(SSTableReader sstable) ++ { ++ return sstable.isMarkedCompacted(); ++ } ++ })) + { - return sstable.isMarkedCompacted(); ++ return false; + } - })) - { - return false; - } + - View newView = currentView.markCompacting(inactive); - return view.compareAndSet(currentView, newView); + View newView = currentView.markCompacting(set); + if (view.compareAndSet(currentView, newView)) + return true; + } } /** http://git-wip-us.apache.org/repos/asf/cassandra/blob/ef890455/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/db/compaction/LeveledManifest.java index 6f2098c,b704523..deb1380 --- a/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java +++ b/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java @@@ -644,7 -534,10 +644,10 @@@ public class LeveledManifes // add sstables from L1 that overlap candidates // 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, getLevel(1))); - Set l1overlapping = overlapping(candidates, generations[1]); ++ Set l1overlapping = overlapping(candidates, getLevel(1)); + if (Sets.intersection(l1overlapping, compacting).size() > 0) + return Collections.emptyList(); + candidates = Sets.union(candidates, l1overlapping); } if (candidates.size() < 2) return Collections.emptyList(); http://git-wip-us.apache.org/repos/asf/cassandra/blob/ef890455/src/java/org/apache/cassandra/io/sstable/SSTableReader.java ----------------------------------------------------------------------