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:50 UTC

[01/13] cassandra git commit: Add partition key to TombstoneOverwhelmingException error message

Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 14a2157bc -> 67637d1bb
  refs/heads/cassandra-2.2 fbf30d219 -> c8c8cf679
  refs/heads/cassandra-3.0 ef32b8e4f -> b3aa33478
  refs/heads/trunk 5a4ff9045 -> 3e5c63d72


Add partition key to TombstoneOverwhelmingException error message

patch by Brett Snyder; reviewed by Benjamin Lerer for CASSANDRA-10888


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/14a2157b
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/14a2157b
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/14a2157b

Branch: refs/heads/trunk
Commit: 14a2157bc7e56b46785bc1a572155e584c972f4a
Parents: 757e314
Author: Brett Snyder <bs...@gmail.com>
Authored: Mon Feb 22 11:43:37 2016 +0100
Committer: Benjamin Lerer <b....@gmail.com>
Committed: Mon Feb 22 11:43:37 2016 +0100

----------------------------------------------------------------------
 CHANGES.txt                                              |  1 +
 .../org/apache/cassandra/db/filter/SliceQueryFilter.java | 11 ++++++-----
 2 files changed, 7 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/14a2157b/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index c40c3ce..ef8c5a7 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.14
+ * 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)
  * Fix incorrect warning in 'nodetool status' (CASSANDRA-10176)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/14a2157b/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java b/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java
index 973477f..957d1ba 100644
--- a/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java
+++ b/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java
@@ -38,7 +38,6 @@ import org.apache.cassandra.io.sstable.SSTableReader;
 import org.apache.cassandra.io.util.DataOutputPlus;
 import org.apache.cassandra.io.util.FileDataInput;
 import org.apache.cassandra.tracing.Tracing;
-import org.apache.cassandra.utils.ByteBufferUtil;
 import org.apache.cassandra.utils.Pair;
 
 public class SliceQueryFilter implements IDiskAtomFilter
@@ -281,10 +280,12 @@ public class SliceQueryFilter implements IDiskAtomFilter
             {
                 Tracing.trace("Scanned over {} tombstones; query aborted (see tombstone_failure_threshold)",
                               DatabaseDescriptor.getTombstoneFailureThreshold());
-                logger.error("Scanned over {} tombstones in {}.{}; query aborted (see tombstone_failure_threshold)",
-                             DatabaseDescriptor.getTombstoneFailureThreshold(),
-                             container.metadata().ksName,
-                             container.metadata().cfName);
+                String msg = String.format("Scanned over %d tombstones in %s.%s for key: %1.512s; query aborted (see tombstone_failure_threshold).",
+                                           DatabaseDescriptor.getTombstoneFailureThreshold(),
+                                           container.metadata().ksName,
+                                           container.metadata().cfName,
+                                           container.metadata().getKeyValidator().getString(key.getKey()));
+                logger.error(msg);
                 throw new TombstoneOverwhelmingException();
             }
 


[04/13] cassandra git commit: Only notify if the repaired status actually changed

Posted by ma...@apache.org.
Only notify if the repaired status actually changed

Patch by marcuse; reviewed by Branimir Lambov for CASSANDRA-11172


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/67637d1b
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/67637d1b
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/67637d1b

Branch: refs/heads/cassandra-3.0
Commit: 67637d1bbaf638162b479ed33a75e4ab3fb06e49
Parents: 14a2157
Author: Marcus Eriksson <ma...@apache.org>
Authored: Mon Feb 22 10:57:42 2016 +0100
Committer: Marcus Eriksson <ma...@apache.org>
Committed: Tue Feb 23 11:10:13 2016 +0100

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 .../cassandra/db/compaction/CompactionManager.java      | 12 +++++++++++-
 2 files changed, 12 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/67637d1b/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index ef8c5a7..52bdcce 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.14
+ * 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/67637d1b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
index 55b873a..ec7cb45 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
@@ -24,6 +24,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -472,7 +473,14 @@ public class CompactionManager implements CompactionManagerMBean
         logger.debug("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
         {
@@ -494,6 +502,8 @@ public class CompactionManager implements CompactionManagerMBean
                         sstable.descriptor.getMetadataSerializer().mutateRepairedAt(sstable.descriptor, repairedAt);
                         sstable.reloadSSTableMetadata();
                         mutatedRepairStatuses.add(sstable);
+                        if (!wasRepairedBefore.get(sstable))
+                            mutatedRepairStatusToNotify.add(sstable);
                         sstableIterator.remove();
                         shouldAnticompact = true;
                         break;
@@ -513,7 +523,7 @@ public class CompactionManager implements CompactionManagerMBean
                 }
             }
             validatedForRepair.release(Sets.union(nonAnticompacting, mutatedRepairStatuses));
-            cfs.getDataTracker().notifySSTableRepairedStatusChanged(mutatedRepairStatuses);
+            cfs.getDataTracker().notifySSTableRepairedStatusChanged(mutatedRepairStatusToNotify);
             cfs.getDataTracker().unmarkCompacting(Sets.union(nonAnticompacting, mutatedRepairStatuses));
             if (!sstables.isEmpty())
                 doAntiCompaction(cfs, ranges, sstables, repairedAt);


[06/13] cassandra git commit: Only notify if the repaired status actually changed

Posted by ma...@apache.org.
Only notify if the repaired status actually changed

Patch by marcuse; reviewed by Branimir Lambov for CASSANDRA-11172


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/67637d1b
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/67637d1b
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/67637d1b

Branch: refs/heads/cassandra-2.1
Commit: 67637d1bbaf638162b479ed33a75e4ab3fb06e49
Parents: 14a2157
Author: Marcus Eriksson <ma...@apache.org>
Authored: Mon Feb 22 10:57:42 2016 +0100
Committer: Marcus Eriksson <ma...@apache.org>
Committed: Tue Feb 23 11:10:13 2016 +0100

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 .../cassandra/db/compaction/CompactionManager.java      | 12 +++++++++++-
 2 files changed, 12 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/67637d1b/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index ef8c5a7..52bdcce 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.14
+ * 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/67637d1b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
index 55b873a..ec7cb45 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
@@ -24,6 +24,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -472,7 +473,14 @@ public class CompactionManager implements CompactionManagerMBean
         logger.debug("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
         {
@@ -494,6 +502,8 @@ public class CompactionManager implements CompactionManagerMBean
                         sstable.descriptor.getMetadataSerializer().mutateRepairedAt(sstable.descriptor, repairedAt);
                         sstable.reloadSSTableMetadata();
                         mutatedRepairStatuses.add(sstable);
+                        if (!wasRepairedBefore.get(sstable))
+                            mutatedRepairStatusToNotify.add(sstable);
                         sstableIterator.remove();
                         shouldAnticompact = true;
                         break;
@@ -513,7 +523,7 @@ public class CompactionManager implements CompactionManagerMBean
                 }
             }
             validatedForRepair.release(Sets.union(nonAnticompacting, mutatedRepairStatuses));
-            cfs.getDataTracker().notifySSTableRepairedStatusChanged(mutatedRepairStatuses);
+            cfs.getDataTracker().notifySSTableRepairedStatusChanged(mutatedRepairStatusToNotify);
             cfs.getDataTracker().unmarkCompacting(Sets.union(nonAnticompacting, mutatedRepairStatuses));
             if (!sstables.isEmpty())
                 doAntiCompaction(cfs, ranges, sstables, repairedAt);


[12/13] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0

Posted by ma...@apache.org.
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/b3aa3347
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b3aa3347
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b3aa3347

Branch: refs/heads/cassandra-3.0
Commit: b3aa33478f2bce10ae6074e6dbf389c300fc27d3
Parents: ef32b8e c8c8cf6
Author: Marcus Eriksson <ma...@apache.org>
Authored: Tue Feb 23 11:14:59 2016 +0100
Committer: Marcus Eriksson <ma...@apache.org>
Committed: Tue Feb 23 11:14:59 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/b3aa3347/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 0c01009,767eb8a..a6ded6f
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -31,6 -16,8 +31,7 @@@ Merged from 2.2
   * 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)
   * Fix incorrect warning in 'nodetool status' (CASSANDRA-10176)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b3aa3347/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
----------------------------------------------------------------------


[09/13] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2

Posted by ma...@apache.org.
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-3.0
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
          {


[08/13] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2

Posted by ma...@apache.org.
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
          {


[02/13] cassandra git commit: Merge branch cassandra-2.1 into cassandra-2.2

Posted by ma...@apache.org.
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/fbf30d21
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fbf30d21
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fbf30d21

Branch: refs/heads/trunk
Commit: fbf30d2199582d3c8e24cc7efcdaedc3a2b7b68e
Parents: 61ac125 14a2157
Author: Benjamin Lerer <b....@gmail.com>
Authored: Mon Feb 22 12:13:51 2016 +0100
Committer: Benjamin Lerer <b....@gmail.com>
Committed: Mon Feb 22 12:19:31 2016 +0100

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 .../apache/cassandra/db/RowIteratorFactory.java | 20 ++++++--------------
 .../cassandra/db/filter/ExtendedFilter.java     | 10 +---------
 .../cassandra/db/filter/SliceQueryFilter.java   |  3 ++-
 .../filter/TombstoneOverwhelmingException.java  | 14 ++++----------
 5 files changed, 14 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/fbf30d21/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 9d0046b,ef8c5a7..e3d6f95
--- 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:
+  * 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)
   * Fix incorrect warning in 'nodetool status' (CASSANDRA-10176)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/fbf30d21/src/java/org/apache/cassandra/db/RowIteratorFactory.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/fbf30d21/src/java/org/apache/cassandra/db/filter/ExtendedFilter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/fbf30d21/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java
index d2f0bf4,957d1ba..822d838
--- a/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java
+++ b/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java
@@@ -278,23 -278,37 +278,24 @@@ public class SliceQueryFilter implement
  
              if (respectTombstoneThresholds() && columnCounter.tombstones() > DatabaseDescriptor.getTombstoneFailureThreshold())
              {
 -                Tracing.trace("Scanned over {} tombstones; query aborted (see tombstone_failure_threshold)",
 -                              DatabaseDescriptor.getTombstoneFailureThreshold());
 -                String msg = String.format("Scanned over %d tombstones in %s.%s for key: %1.512s; query aborted (see tombstone_failure_threshold).",
 -                                           DatabaseDescriptor.getTombstoneFailureThreshold(),
 -                                           container.metadata().ksName,
 -                                           container.metadata().cfName,
 -                                           container.metadata().getKeyValidator().getString(key.getKey()));
 -                logger.error(msg);
 -                throw new TombstoneOverwhelmingException();
 +                Tracing.trace("Scanned over {} tombstones; query aborted (see tombstone_failure_threshold); slices={}",
 +                              DatabaseDescriptor.getTombstoneFailureThreshold(), getSlicesInfo(container));
 +
 +                throw new TombstoneOverwhelmingException(columnCounter.tombstones(),
 +                                                         count,
 +                                                         container.metadata().ksName,
 +                                                         container.metadata().cfName,
 +                                                         container.getComparator().getString(cell.name()),
-                                                          getSlicesInfo(container));
++                                                         getSlicesInfo(container),
++                                                         container.metadata().getKeyValidator().getString(key.getKey()));
              }
  
 -            container.maybeAppendColumn(cell, tester, gcBefore);
 +            container.appendColumn(cell);
          }
  
 -        Tracing.trace("Read {} live and {} tombstone cells", columnCounter.live(), columnCounter.tombstones());
 -        if (logger.isWarnEnabled() && respectTombstoneThresholds() && columnCounter.tombstones() > DatabaseDescriptor.getTombstoneWarnThreshold())
 +        boolean warnTombstones = logger.isWarnEnabled() && respectTombstoneThresholds() && columnCounter.tombstones() > DatabaseDescriptor.getTombstoneWarnThreshold();
 +        if (warnTombstones)
          {
 -            StringBuilder sb = new StringBuilder();
 -            CellNameType type = container.metadata().comparator;
 -
 -            for (ColumnSlice sl : slices)
 -            {
 -                assert sl != null;
 -
 -                sb.append('[');
 -                sb.append(type.getString(sl.start));
 -                sb.append('-');
 -                sb.append(type.getString(sl.finish));
 -                sb.append(']');
 -            }
 -
              String msg = String.format("Read %d live and %d tombstone cells in %s.%s for key: %1.512s (see tombstone_warn_threshold). %d columns were requested, slices=%1.512s",
                                         columnCounter.live(),
                                         columnCounter.tombstones(),

http://git-wip-us.apache.org/repos/asf/cassandra/blob/fbf30d21/src/java/org/apache/cassandra/db/filter/TombstoneOverwhelmingException.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/filter/TombstoneOverwhelmingException.java
index 7624e1b,6a6b0f6..da4e30f
--- a/src/java/org/apache/cassandra/db/filter/TombstoneOverwhelmingException.java
+++ b/src/java/org/apache/cassandra/db/filter/TombstoneOverwhelmingException.java
@@@ -18,49 -18,6 +18,43 @@@
   */
  package org.apache.cassandra.db.filter;
  
- import org.apache.cassandra.db.DecoratedKey;
- 
  public class TombstoneOverwhelmingException extends RuntimeException
  {
 +    private final int numTombstones;
 +    private final int numRequested;
 +    private final String ksName;
 +    private final String cfName;
 +    private final String lastCellName;
 +    private final String slicesInfo;
-     private String partitionKey = null;
++    private final String partitionKey;
 +
 +    public TombstoneOverwhelmingException(int numTombstones,
 +                                          int numRequested,
 +                                          String ksName,
 +                                          String cfName,
 +                                          String lastCellName,
-                                           String slicesInfo)
++                                          String slicesInfo,
++                                          String partitionKey)
 +    {
 +        this.numTombstones = numTombstones;
 +        this.numRequested = numRequested;
 +        this.ksName = ksName;
 +        this.cfName = cfName;
 +        this.lastCellName = lastCellName;
 +        this.slicesInfo = slicesInfo;
-     }
- 
-     public void setKey(DecoratedKey key)
-     {
-         if (key != null)
-             partitionKey = key.toString();
++        this.partitionKey = partitionKey;
 +    }
 +
 +    public String getLocalizedMessage()
 +    {
 +        return getMessage();
 +    }
 +
 +    public String getMessage()
 +    {
 +        return String.format(
 +                "Scanned over %d tombstones in %s.%s; %d columns were requested; query aborted " +
 +                "(see tombstone_failure_threshold); partitionKey=%s; lastCell=%s; slices=%s",
 +                numTombstones, ksName, cfName, numRequested, partitionKey, lastCellName, slicesInfo);
 +    }
  }


[13/13] cassandra git commit: Merge branch 'cassandra-3.0' into trunk

Posted by ma...@apache.org.
Merge branch 'cassandra-3.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/3e5c63d7
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3e5c63d7
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3e5c63d7

Branch: refs/heads/trunk
Commit: 3e5c63d72e104595b930a45fd827cfa5edf6af36
Parents: 5a4ff90 b3aa334
Author: Marcus Eriksson <ma...@apache.org>
Authored: Tue Feb 23 11:15:11 2016 +0100
Committer: Marcus Eriksson <ma...@apache.org>
Committed: Tue Feb 23 11:15:11 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/3e5c63d7/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index f66d959,a6ded6f..51b2241
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -58,8 -30,8 +58,9 @@@ Merged from 2.2
   * (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)
 + * (cqlsh) Support timezone conversion using pytz (CASSANDRA-10397)
  Merged from 2.1:
+  * Only notify if repair status changed (CASSANDRA-11172)
   * Use logback setting for 'cassandra -v' command (CASSANDRA-10767)
   * Fix sstableloader to unthrottle streaming by default (CASSANDRA-9714)
   * Fix incorrect warning in 'nodetool status' (CASSANDRA-10176)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3e5c63d7/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
----------------------------------------------------------------------


[05/13] cassandra git commit: Only notify if the repaired status actually changed

Posted by ma...@apache.org.
Only notify if the repaired status actually changed

Patch by marcuse; reviewed by Branimir Lambov for CASSANDRA-11172


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/67637d1b
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/67637d1b
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/67637d1b

Branch: refs/heads/cassandra-2.2
Commit: 67637d1bbaf638162b479ed33a75e4ab3fb06e49
Parents: 14a2157
Author: Marcus Eriksson <ma...@apache.org>
Authored: Mon Feb 22 10:57:42 2016 +0100
Committer: Marcus Eriksson <ma...@apache.org>
Committed: Tue Feb 23 11:10:13 2016 +0100

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 .../cassandra/db/compaction/CompactionManager.java      | 12 +++++++++++-
 2 files changed, 12 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/67637d1b/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index ef8c5a7..52bdcce 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.14
+ * 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/67637d1b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
index 55b873a..ec7cb45 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
@@ -24,6 +24,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -472,7 +473,14 @@ public class CompactionManager implements CompactionManagerMBean
         logger.debug("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
         {
@@ -494,6 +502,8 @@ public class CompactionManager implements CompactionManagerMBean
                         sstable.descriptor.getMetadataSerializer().mutateRepairedAt(sstable.descriptor, repairedAt);
                         sstable.reloadSSTableMetadata();
                         mutatedRepairStatuses.add(sstable);
+                        if (!wasRepairedBefore.get(sstable))
+                            mutatedRepairStatusToNotify.add(sstable);
                         sstableIterator.remove();
                         shouldAnticompact = true;
                         break;
@@ -513,7 +523,7 @@ public class CompactionManager implements CompactionManagerMBean
                 }
             }
             validatedForRepair.release(Sets.union(nonAnticompacting, mutatedRepairStatuses));
-            cfs.getDataTracker().notifySSTableRepairedStatusChanged(mutatedRepairStatuses);
+            cfs.getDataTracker().notifySSTableRepairedStatusChanged(mutatedRepairStatusToNotify);
             cfs.getDataTracker().unmarkCompacting(Sets.union(nonAnticompacting, mutatedRepairStatuses));
             if (!sstables.isEmpty())
                 doAntiCompaction(cfs, ranges, sstables, repairedAt);


[07/13] cassandra git commit: Only notify if the repaired status actually changed

Posted by ma...@apache.org.
Only notify if the repaired status actually changed

Patch by marcuse; reviewed by Branimir Lambov for CASSANDRA-11172


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/67637d1b
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/67637d1b
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/67637d1b

Branch: refs/heads/trunk
Commit: 67637d1bbaf638162b479ed33a75e4ab3fb06e49
Parents: 14a2157
Author: Marcus Eriksson <ma...@apache.org>
Authored: Mon Feb 22 10:57:42 2016 +0100
Committer: Marcus Eriksson <ma...@apache.org>
Committed: Tue Feb 23 11:10:13 2016 +0100

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 .../cassandra/db/compaction/CompactionManager.java      | 12 +++++++++++-
 2 files changed, 12 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/67637d1b/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index ef8c5a7..52bdcce 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.14
+ * 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/67637d1b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
index 55b873a..ec7cb45 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
@@ -24,6 +24,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -472,7 +473,14 @@ public class CompactionManager implements CompactionManagerMBean
         logger.debug("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
         {
@@ -494,6 +502,8 @@ public class CompactionManager implements CompactionManagerMBean
                         sstable.descriptor.getMetadataSerializer().mutateRepairedAt(sstable.descriptor, repairedAt);
                         sstable.reloadSSTableMetadata();
                         mutatedRepairStatuses.add(sstable);
+                        if (!wasRepairedBefore.get(sstable))
+                            mutatedRepairStatusToNotify.add(sstable);
                         sstableIterator.remove();
                         shouldAnticompact = true;
                         break;
@@ -513,7 +523,7 @@ public class CompactionManager implements CompactionManagerMBean
                 }
             }
             validatedForRepair.release(Sets.union(nonAnticompacting, mutatedRepairStatuses));
-            cfs.getDataTracker().notifySSTableRepairedStatusChanged(mutatedRepairStatuses);
+            cfs.getDataTracker().notifySSTableRepairedStatusChanged(mutatedRepairStatusToNotify);
             cfs.getDataTracker().unmarkCompacting(Sets.union(nonAnticompacting, mutatedRepairStatuses));
             if (!sstables.isEmpty())
                 doAntiCompaction(cfs, ranges, sstables, repairedAt);


[03/13] cassandra git commit: Merge branch cassandra-2.2 into cassandra-3.0

Posted by ma...@apache.org.
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/ef32b8e4
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ef32b8e4
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ef32b8e4

Branch: refs/heads/trunk
Commit: ef32b8e4f6fb2817c1b9e940427c24fce6db3028
Parents: b0f2266 fbf30d2
Author: Benjamin Lerer <b....@gmail.com>
Authored: Mon Feb 22 12:23:46 2016 +0100
Committer: Benjamin Lerer <b....@gmail.com>
Committed: Mon Feb 22 12:24:41 2016 +0100

----------------------------------------------------------------------

----------------------------------------------------------------------



[10/13] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2

Posted by ma...@apache.org.
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/trunk
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
          {


[11/13] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0

Posted by ma...@apache.org.
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/b3aa3347
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b3aa3347
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b3aa3347

Branch: refs/heads/trunk
Commit: b3aa33478f2bce10ae6074e6dbf389c300fc27d3
Parents: ef32b8e c8c8cf6
Author: Marcus Eriksson <ma...@apache.org>
Authored: Tue Feb 23 11:14:59 2016 +0100
Committer: Marcus Eriksson <ma...@apache.org>
Committed: Tue Feb 23 11:14:59 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/b3aa3347/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 0c01009,767eb8a..a6ded6f
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -31,6 -16,8 +31,7 @@@ Merged from 2.2
   * 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)
   * Fix incorrect warning in 'nodetool status' (CASSANDRA-10176)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b3aa3347/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
----------------------------------------------------------------------