Merge branch 'cassandra-2.2' into cassandra-3.0
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6807c598 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6807c598 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6807c598 Branch: refs/heads/cassandra-3.5 Commit: 6807c5984965b2689e077dbd1c4b9a3dd92a6d96 Parents: 202786e 10f25ae Author: Marcus Eriksson <[email protected]> Authored: Thu Mar 31 09:42:22 2016 +0200 Committer: Marcus Eriksson <[email protected]> Committed: Thu Mar 31 09:42:22 2016 +0200 ---------------------------------------------------------------------- CHANGES.txt | 1 + .../db/compaction/CompactionManager.java | 17 ++++++++++------- .../repair/RepairMessageVerbHandler.java | 18 ++++++++++-------- .../cassandra/service/ActiveRepairService.java | 2 +- 4 files changed, 22 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/6807c598/CHANGES.txt ---------------------------------------------------------------------- diff --cc CHANGES.txt index ea0040f,e7aa321..449a2b5 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,17 -1,6 +1,18 @@@ -2.2.6 +3.0.5 + * Upgrade ohc to 0.4.3 + * Enable SO_REUSEADDR for JMX RMI server sockets (CASSANDRA-11093) + * Allocate merkletrees with the correct size (CASSANDRA-11390) + * Support streaming pre-3.0 sstables (CASSANDRA-10990) + * Add backpressure to compressed commit log (CASSANDRA-10971) + * SSTableExport supports secondary index tables (CASSANDRA-11330) + * Fix sstabledump to include missing info in debug output (CASSANDRA-11321) + * Establish and implement canonical bulk reading workload(s) (CASSANDRA-10331) + * Fix paging for IN queries on tables without clustering columns (CASSANDRA-11208) + * Remove recursive call from CompositesSearcher (CASSANDRA-11304) + * Fix filtering on non-primary key columns for queries without index (CASSANDRA-6377) + * Fix sstableloader fail when using materialized view (CASSANDRA-11275) +Merged from 2.2: + * Dont mark sstables as repairing with sub range repairs (CASSANDRA-11451) - * Fix use of NullUpdater for 2i during compaction (CASSANDRA-11450) * Notify when sstables change after cancelling compaction (CASSANDRA-11373) * cqlsh: COPY FROM should check that explicit column names are valid (CASSANDRA-11333) * Add -Dcassandra.start_gossip startup option (CASSANDRA-10809) http://git-wip-us.apache.org/repos/asf/cassandra/blob/6807c598/src/java/org/apache/cassandra/db/compaction/CompactionManager.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/6807c598/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java index 703d187,8a0706a..eeefec4 --- a/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java +++ b/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java @@@ -95,20 -104,22 +95,22 @@@ public class RepairMessageVerbHandler i public boolean apply(SSTableReader sstable) { return sstable != null && - !(sstable.partitioner instanceof LocalPartitioner) && // exclude SSTables from 2i - new Bounds<>(sstable.first.getToken(), sstable.last.getToken()).intersects(Collections.singleton(repairingRange)); + !sstable.metadata.isIndex() && // exclude SSTables from 2i + new Bounds<>(sstable.first.getToken(), sstable.last.getToken()).intersects(repairingRange); } }, true); //ephemeral snapshot, if repair fails, it will be cleaned next startup - - Set<SSTableReader> currentlyRepairing = ActiveRepairService.instance.currentlyRepairing(cfs.metadata.cfId, desc.parentSessionId); - if (!Sets.intersection(currentlyRepairing, snapshottedSSSTables).isEmpty()) + if (ActiveRepairService.instance.getParentRepairSession(desc.parentSessionId).isGlobal) { - // clear snapshot that we just created - cfs.clearSnapshot(desc.sessionId.toString()); - logErrorAndSendFailureResponse("Cannot start multiple repair sessions over the same sstables", message.from, id); - return; + Set<SSTableReader> currentlyRepairing = ActiveRepairService.instance.currentlyRepairing(cfs.metadata.cfId, desc.parentSessionId); + if (!Sets.intersection(currentlyRepairing, snapshottedSSSTables).isEmpty()) + { + // clear snapshot that we just created + cfs.clearSnapshot(desc.sessionId.toString()); + logErrorAndSendFailureResponse("Cannot start multiple repair sessions over the same sstables", message.from, id); + return; + } + ActiveRepairService.instance.getParentRepairSession(desc.parentSessionId).addSSTables(cfs.metadata.cfId, snapshottedSSSTables); } - ActiveRepairService.instance.getParentRepairSession(desc.parentSessionId).addSSTables(cfs.metadata.cfId, snapshottedSSSTables); logger.debug("Enqueuing response to snapshot request {} to {}", desc.sessionId, message.from); MessagingService.instance().sendReply(new MessageOut(MessagingService.Verb.INTERNAL_RESPONSE), id, message.from); break; http://git-wip-us.apache.org/repos/asf/cassandra/blob/6807c598/src/java/org/apache/cassandra/service/ActiveRepairService.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/service/ActiveRepairService.java index 46d1e2c,39be051..b0fe91a --- a/src/java/org/apache/cassandra/service/ActiveRepairService.java +++ b/src/java/org/apache/cassandra/service/ActiveRepairService.java @@@ -424,9 -426,9 +424,9 @@@ public class ActiveRepairServic private final Map<UUID, Set<SSTableReader>> sstableMap = new HashMap<>(); private final long repairedAt; public final boolean isIncremental; - private final boolean isGlobal; + public final boolean isGlobal; - public ParentRepairSession(List<ColumnFamilyStore> columnFamilyStores, Collection<Range<Token>> ranges, boolean isIncremental, boolean isGlobal, long repairedAt) + public ParentRepairSession(List<ColumnFamilyStore> columnFamilyStores, Collection<Range<Token>> ranges, boolean isIncremental, long repairedAt, boolean isGlobal) { for (ColumnFamilyStore cfs : columnFamilyStores) {
