You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ma...@apache.org on 2016/02/23 11:16:57 UTC
[08/13] cassandra git commit: Merge branch 'cassandra-2.1' into
cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c8c8cf67
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c8c8cf67
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c8c8cf67
Branch: refs/heads/cassandra-2.2
Commit: c8c8cf679c0e597dd741d0780a1c2ac5e0113251
Parents: fbf30d2 67637d1
Author: Marcus Eriksson <ma...@apache.org>
Authored: Tue Feb 23 11:12:01 2016 +0100
Committer: Marcus Eriksson <ma...@apache.org>
Committed: Tue Feb 23 11:13:18 2016 +0100
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../cassandra/db/compaction/CompactionManager.java | 11 ++++++++++-
2 files changed, 11 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/c8c8cf67/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index e3d6f95,52bdcce..767eb8a
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,21 -1,5 +1,22 @@@
-2.1.14
+2.2.6
+ * Replacing an aggregate with a new version doesn't reset INITCOND (CASSANDRA-10840)
+ * (cqlsh) cqlsh cannot be called through symlink (CASSANDRA-11037)
+ * fix ohc and java-driver pom dependencies in build.xml (CASSANDRA-10793)
+ * Protect from keyspace dropped during repair (CASSANDRA-11065)
+ * Handle adding fields to a UDT in SELECT JSON and toJson() (CASSANDRA-11146)
+ * Better error message for cleanup (CASSANDRA-10991)
+ * cqlsh pg-style-strings broken if line ends with ';' (CASSANDRA-11123)
+ * Use cloned TokenMetadata in size estimates to avoid race against membership check
+ (CASSANDRA-10736)
+ * Always persist upsampled index summaries (CASSANDRA-10512)
+ * (cqlsh) Fix inconsistent auto-complete (CASSANDRA-10733)
+ * Make SELECT JSON and toJson() threadsafe (CASSANDRA-11048)
+ * Fix SELECT on tuple relations for mixed ASC/DESC clustering order (CASSANDRA-7281)
+ * (cqlsh) Support utf-8/cp65001 encoding on Windows (CASSANDRA-11030)
+ * Fix paging on DISTINCT queries repeats result when first row in partition changes
+ (CASSANDRA-10010)
+Merged from 2.1:
+ * Only notify if repair status changed (CASSANDRA-11172)
* Add partition key to TombstoneOverwhelmingException error message (CASSANDRA-10888)
* Use logback setting for 'cassandra -v' command (CASSANDRA-10767)
* Fix sstableloader to unthrottle streaming by default (CASSANDRA-9714)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/c8c8cf67/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/compaction/CompactionManager.java
index 44d7efb,ec7cb45..9ca4406
--- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
@@@ -484,14 -467,20 +484,21 @@@ public class CompactionManager implemen
public void performAnticompaction(ColumnFamilyStore cfs,
Collection<Range<Token>> ranges,
Refs<SSTableReader> validatedForRepair,
- long repairedAt) throws InterruptedException, ExecutionException, IOException
+ LifecycleTransaction txn,
+ long repairedAt) throws InterruptedException, IOException
{
logger.info("Starting anticompaction for {}.{} on {}/{} sstables", cfs.keyspace.getName(), cfs.getColumnFamilyName(), validatedForRepair.size(), cfs.getSSTables().size());
- logger.debug("Starting anticompaction for ranges {}", ranges);
+ logger.trace("Starting anticompaction for ranges {}", ranges);
Set<SSTableReader> sstables = new HashSet<>(validatedForRepair);
Set<SSTableReader> mutatedRepairStatuses = new HashSet<>();
+ // we should only notify that repair status changed if it actually did:
+ Set<SSTableReader> mutatedRepairStatusToNotify = new HashSet<>();
+ Map<SSTableReader, Boolean> wasRepairedBefore = new HashMap<>();
+ for (SSTableReader sstable : sstables)
+ wasRepairedBefore.put(sstable, sstable.isRepaired());
+
Set<SSTableReader> nonAnticompacting = new HashSet<>();
+
Iterator<SSTableReader> sstableIterator = sstables.iterator();
try
{
@@@ -531,13 -522,11 +540,13 @@@
sstableIterator.remove();
}
}
- cfs.getTracker().notifySSTableRepairedStatusChanged(mutatedRepairStatuses);
++ cfs.getTracker().notifySSTableRepairedStatusChanged(mutatedRepairStatusToNotify);
+ txn.cancel(Sets.union(nonAnticompacting, mutatedRepairStatuses));
validatedForRepair.release(Sets.union(nonAnticompacting, mutatedRepairStatuses));
- cfs.getDataTracker().notifySSTableRepairedStatusChanged(mutatedRepairStatusToNotify);
- cfs.getDataTracker().unmarkCompacting(Sets.union(nonAnticompacting, mutatedRepairStatuses));
+ assert txn.originals().equals(sstables);
if (!sstables.isEmpty())
- doAntiCompaction(cfs, ranges, sstables, repairedAt);
+ doAntiCompaction(cfs, ranges, txn, repairedAt);
+ txn.finish();
}
finally
{