You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jj...@apache.org on 2017/03/17 22:43:12 UTC

[1/6] cassandra git commit: Use a unique metric reservoir per test run when using Cassandra-wide metrics residing in MBeans

Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.0 5918375e8 -> 1dcb3131a
  refs/heads/cassandra-3.11 c3d3e1ad4 -> 1092f5e71
  refs/heads/trunk 9d933657c -> 5ec97afce


Use a unique metric reservoir per test run when using Cassandra-wide metrics residing in MBeans

Patch by Alex Petrov; reviewed by Michael Kjellman for CASSANDRA-13216.


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

Branch: refs/heads/cassandra-3.0
Commit: 1dcb3131a4d7417634551456f1fe3f519fa17fd0
Parents: 5918375
Author: Alex Petrov <ol...@gmail.com>
Authored: Mon Mar 6 08:44:53 2017 +0100
Committer: Jeff Jirsa <je...@jeffjirsa.net>
Committed: Fri Mar 17 15:26:14 2017 -0700

----------------------------------------------------------------------
 CHANGES.txt                                        |  1 +
 .../cassandra/metrics/DroppedMessageMetrics.java   |  6 +++++-
 .../org/apache/cassandra/net/MessagingService.java | 17 ++++++++++++++++-
 .../apache/cassandra/net/MessagingServiceTest.java |  8 ++++++++
 4 files changed, 30 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1dcb3131/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 2017b78..97d8561 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.0.13
+ * Applying: Use a unique metric reservoir per test run when using Cassandra-wide metrics residing in MBeans (CASSANDRA-13216)
  * Propagate row deletions in 2i tables on upgrade (CASSANDRA-13320)
  * Slice.isEmpty() returns false for some empty slices (CASSANDRA-13305)
  * Add formatted row output to assertEmpty in CQL Tester (CASSANDRA-13238)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1dcb3131/src/java/org/apache/cassandra/metrics/DroppedMessageMetrics.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/metrics/DroppedMessageMetrics.java b/src/java/org/apache/cassandra/metrics/DroppedMessageMetrics.java
index 58c80fb..6d16f8b 100644
--- a/src/java/org/apache/cassandra/metrics/DroppedMessageMetrics.java
+++ b/src/java/org/apache/cassandra/metrics/DroppedMessageMetrics.java
@@ -32,7 +32,11 @@ public class DroppedMessageMetrics
 
     public DroppedMessageMetrics(MessagingService.Verb verb)
     {
-        MetricNameFactory factory = new DefaultNameFactory("DroppedMessage", verb.toString());
+        this(new DefaultNameFactory("DroppedMessage", verb.toString()));
+    }
+
+    public DroppedMessageMetrics(MetricNameFactory factory)
+    {
         dropped = Metrics.meter(factory.createMetricName("Dropped"));
     }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1dcb3131/src/java/org/apache/cassandra/net/MessagingService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/net/MessagingService.java b/src/java/org/apache/cassandra/net/MessagingService.java
index 31ea09e..e8095d3 100644
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@ -65,6 +65,7 @@ import org.apache.cassandra.io.util.DataInputPlus;
 import org.apache.cassandra.io.util.DataOutputPlus;
 import org.apache.cassandra.io.util.FileUtils;
 import org.apache.cassandra.locator.ILatencySubscriber;
+import org.apache.cassandra.metrics.CassandraMetricsRegistry;
 import org.apache.cassandra.metrics.ConnectionMetrics;
 import org.apache.cassandra.metrics.DroppedMessageMetrics;
 import org.apache.cassandra.repair.messages.RepairMessage;
@@ -338,12 +339,26 @@ public final class MessagingService implements MessagingServiceMBean
 
         DroppedMessages(Verb verb)
         {
-            this.metrics = new DroppedMessageMetrics(verb);
+            this(new DroppedMessageMetrics(verb));
+        }
+
+        DroppedMessages(DroppedMessageMetrics metrics)
+        {
+            this.metrics = metrics;
             this.droppedInternalTimeout = new AtomicInteger(0);
             this.droppedCrossNodeTimeout = new AtomicInteger(0);
         }
+    }
 
+    @VisibleForTesting
+    public void resetDroppedMessagesMap(String scope)
+    {
+        for (Verb verb : droppedMessagesMap.keySet())
+            droppedMessagesMap.put(verb, new DroppedMessages(new DroppedMessageMetrics(metricName -> {
+                return new CassandraMetricsRegistry.MetricName("DroppedMessages", metricName, scope);
+            })));
     }
+
     // total dropped message counts for server lifetime
     private final Map<Verb, DroppedMessages> droppedMessagesMap = new EnumMap<>(Verb.class);
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1dcb3131/test/unit/org/apache/cassandra/net/MessagingServiceTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/net/MessagingServiceTest.java b/test/unit/org/apache/cassandra/net/MessagingServiceTest.java
index 8631f03..3be1990 100644
--- a/test/unit/org/apache/cassandra/net/MessagingServiceTest.java
+++ b/test/unit/org/apache/cassandra/net/MessagingServiceTest.java
@@ -22,6 +22,7 @@ package org.apache.cassandra.net;
 
 import java.util.List;
 
+import org.junit.Before;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
@@ -30,6 +31,13 @@ public class MessagingServiceTest
 {
     private final MessagingService messagingService = MessagingService.test();
 
+    private static int metricScopeId = 0;
+
+    @Before
+    public void before() {
+        messagingService.resetDroppedMessagesMap(Integer.toString(metricScopeId++));;
+    }
+
     @Test
     public void testDroppedMessages()
     {


[4/6] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.11

Posted by jj...@apache.org.
Merge branch 'cassandra-3.0' into cassandra-3.11


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

Branch: refs/heads/trunk
Commit: 1092f5e717dd6a6165df21df04ee17c4a8a96eb6
Parents: c3d3e1a 1dcb313
Author: Jeff Jirsa <je...@jeffjirsa.net>
Authored: Fri Mar 17 15:26:45 2017 -0700
Committer: Jeff Jirsa <je...@jeffjirsa.net>
Committed: Fri Mar 17 15:27:18 2017 -0700

----------------------------------------------------------------------
 CHANGES.txt                                        |  1 +
 .../cassandra/metrics/DroppedMessageMetrics.java   |  6 +++++-
 .../org/apache/cassandra/net/MessagingService.java | 17 ++++++++++++++++-
 .../apache/cassandra/net/MessagingServiceTest.java |  3 +++
 4 files changed, 25 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1092f5e7/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 24e8c5f,97d8561..44321ef
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,16 -1,5 +1,17 @@@
 -3.0.13
 +3.11.0
 + * Support unaligned memory access for AArch64 (CASSANDRA-13326)
 + * Improve SASI range iterator efficiency on intersection with an empty range (CASSANDRA-12915).
 + * Fix equality comparisons of columns using the duration type (CASSANDRA-13174)
 + * Obfuscate password in stress-graphs (CASSANDRA-12233)
 + * Move to FastThreadLocalThread and FastThreadLocal (CASSANDRA-13034)
 + * nodetool stopdaemon errors out (CASSANDRA-13030)
 + * Tables in system_distributed should not use gcgs of 0 (CASSANDRA-12954)
 + * Fix primary index calculation for SASI (CASSANDRA-12910)
 + * More fixes to the TokenAllocator (CASSANDRA-12990)
 + * NoReplicationTokenAllocator should work with zero replication factor (CASSANDRA-12983)
 + * Address message coalescing regression (CASSANDRA-12676)
 +Merged from 3.0:
+  * Applying: Use a unique metric reservoir per test run when using Cassandra-wide metrics residing in MBeans (CASSANDRA-13216)
   * Propagate row deletions in 2i tables on upgrade (CASSANDRA-13320)
   * Slice.isEmpty() returns false for some empty slices (CASSANDRA-13305)
   * Add formatted row output to assertEmpty in CQL Tester (CASSANDRA-13238)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1092f5e7/src/java/org/apache/cassandra/metrics/DroppedMessageMetrics.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/metrics/DroppedMessageMetrics.java
index 2a94c9f,6d16f8b..794fa9c
--- a/src/java/org/apache/cassandra/metrics/DroppedMessageMetrics.java
+++ b/src/java/org/apache/cassandra/metrics/DroppedMessageMetrics.java
@@@ -32,17 -30,13 +32,21 @@@ public class DroppedMessageMetric
      /** Number of dropped messages */
      public final Meter dropped;
  
 +    /** The dropped latency within node */
 +    public final Timer internalDroppedLatency;
 +
 +    /** The cross node dropped latency */
 +    public final Timer crossNodeDroppedLatency;
 +
      public DroppedMessageMetrics(MessagingService.Verb verb)
      {
-         MetricNameFactory factory = new DefaultNameFactory("DroppedMessage", verb.toString());
+         this(new DefaultNameFactory("DroppedMessage", verb.toString()));
+     }
+ 
+     public DroppedMessageMetrics(MetricNameFactory factory)
+     {
          dropped = Metrics.meter(factory.createMetricName("Dropped"));
 +        internalDroppedLatency = Metrics.timer(factory.createMetricName("InternalDroppedLatency"));
 +        crossNodeDroppedLatency = Metrics.timer(factory.createMetricName("CrossNodeDroppedLatency"));
      }
  }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1092f5e7/src/java/org/apache/cassandra/net/MessagingService.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/net/MessagingService.java
index 25285e5,e8095d3..e377722
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@@ -70,9 -65,9 +70,10 @@@ import org.apache.cassandra.io.util.Dat
  import org.apache.cassandra.io.util.DataOutputPlus;
  import org.apache.cassandra.io.util.FileUtils;
  import org.apache.cassandra.locator.ILatencySubscriber;
+ import org.apache.cassandra.metrics.CassandraMetricsRegistry;
  import org.apache.cassandra.metrics.ConnectionMetrics;
  import org.apache.cassandra.metrics.DroppedMessageMetrics;
 +import org.apache.cassandra.metrics.MessagingMetrics;
  import org.apache.cassandra.repair.messages.RepairMessage;
  import org.apache.cassandra.security.SSLFactory;
  import org.apache.cassandra.service.*;
@@@ -431,12 -339,26 +432,26 @@@ public final class MessagingService imp
  
          DroppedMessages(Verb verb)
          {
-             this.metrics = new DroppedMessageMetrics(verb);
+             this(new DroppedMessageMetrics(verb));
+         }
+ 
+         DroppedMessages(DroppedMessageMetrics metrics)
+         {
+             this.metrics = metrics;
 -            this.droppedInternalTimeout = new AtomicInteger(0);
 -            this.droppedCrossNodeTimeout = new AtomicInteger(0);
 +            this.droppedInternal = new AtomicInteger(0);
 +            this.droppedCrossNode = new AtomicInteger(0);
          }
+     }
  
+     @VisibleForTesting
+     public void resetDroppedMessagesMap(String scope)
+     {
+         for (Verb verb : droppedMessagesMap.keySet())
+             droppedMessagesMap.put(verb, new DroppedMessages(new DroppedMessageMetrics(metricName -> {
+                 return new CassandraMetricsRegistry.MetricName("DroppedMessages", metricName, scope);
+             })));
      }
+ 
      // total dropped message counts for server lifetime
      private final Map<Verb, DroppedMessages> droppedMessagesMap = new EnumMap<>(Verb.class);
  

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1092f5e7/test/unit/org/apache/cassandra/net/MessagingServiceTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/net/MessagingServiceTest.java
index 11d17b8,3be1990..c1dcfc5
--- a/test/unit/org/apache/cassandra/net/MessagingServiceTest.java
+++ b/test/unit/org/apache/cassandra/net/MessagingServiceTest.java
@@@ -50,24 -29,13 +50,27 @@@ import static org.junit.Assert.*
  
  public class MessagingServiceTest
  {
 +    private final static long ONE_SECOND = TimeUnit.NANOSECONDS.convert(1, TimeUnit.SECONDS);
 +    private final static long[] bucketOffsets = new EstimatedHistogram(160).getBucketOffsets();
      private final MessagingService messagingService = MessagingService.test();
  
 +    @BeforeClass
 +    public static void beforeClass() throws UnknownHostException
 +    {
 +        DatabaseDescriptor.daemonInitialization();
 +        DatabaseDescriptor.setBackPressureStrategy(new MockBackPressureStrategy(Collections.emptyMap()));
 +        DatabaseDescriptor.setBroadcastAddress(InetAddress.getByName("127.0.0.1"));
 +    }
 +
+     private static int metricScopeId = 0;
+ 
      @Before
 -    public void before() {
 -        messagingService.resetDroppedMessagesMap(Integer.toString(metricScopeId++));;
 +    public void before() throws UnknownHostException
 +    {
++        messagingService.resetDroppedMessagesMap(Integer.toString(metricScopeId++));
 +        MockBackPressureStrategy.applied = false;
 +        messagingService.destroyConnectionPool(InetAddress.getByName("127.0.0.2"));
 +        messagingService.destroyConnectionPool(InetAddress.getByName("127.0.0.3"));
      }
  
      @Test


[2/6] cassandra git commit: Use a unique metric reservoir per test run when using Cassandra-wide metrics residing in MBeans

Posted by jj...@apache.org.
Use a unique metric reservoir per test run when using Cassandra-wide metrics residing in MBeans

Patch by Alex Petrov; reviewed by Michael Kjellman for CASSANDRA-13216.


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

Branch: refs/heads/cassandra-3.11
Commit: 1dcb3131a4d7417634551456f1fe3f519fa17fd0
Parents: 5918375
Author: Alex Petrov <ol...@gmail.com>
Authored: Mon Mar 6 08:44:53 2017 +0100
Committer: Jeff Jirsa <je...@jeffjirsa.net>
Committed: Fri Mar 17 15:26:14 2017 -0700

----------------------------------------------------------------------
 CHANGES.txt                                        |  1 +
 .../cassandra/metrics/DroppedMessageMetrics.java   |  6 +++++-
 .../org/apache/cassandra/net/MessagingService.java | 17 ++++++++++++++++-
 .../apache/cassandra/net/MessagingServiceTest.java |  8 ++++++++
 4 files changed, 30 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1dcb3131/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 2017b78..97d8561 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.0.13
+ * Applying: Use a unique metric reservoir per test run when using Cassandra-wide metrics residing in MBeans (CASSANDRA-13216)
  * Propagate row deletions in 2i tables on upgrade (CASSANDRA-13320)
  * Slice.isEmpty() returns false for some empty slices (CASSANDRA-13305)
  * Add formatted row output to assertEmpty in CQL Tester (CASSANDRA-13238)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1dcb3131/src/java/org/apache/cassandra/metrics/DroppedMessageMetrics.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/metrics/DroppedMessageMetrics.java b/src/java/org/apache/cassandra/metrics/DroppedMessageMetrics.java
index 58c80fb..6d16f8b 100644
--- a/src/java/org/apache/cassandra/metrics/DroppedMessageMetrics.java
+++ b/src/java/org/apache/cassandra/metrics/DroppedMessageMetrics.java
@@ -32,7 +32,11 @@ public class DroppedMessageMetrics
 
     public DroppedMessageMetrics(MessagingService.Verb verb)
     {
-        MetricNameFactory factory = new DefaultNameFactory("DroppedMessage", verb.toString());
+        this(new DefaultNameFactory("DroppedMessage", verb.toString()));
+    }
+
+    public DroppedMessageMetrics(MetricNameFactory factory)
+    {
         dropped = Metrics.meter(factory.createMetricName("Dropped"));
     }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1dcb3131/src/java/org/apache/cassandra/net/MessagingService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/net/MessagingService.java b/src/java/org/apache/cassandra/net/MessagingService.java
index 31ea09e..e8095d3 100644
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@ -65,6 +65,7 @@ import org.apache.cassandra.io.util.DataInputPlus;
 import org.apache.cassandra.io.util.DataOutputPlus;
 import org.apache.cassandra.io.util.FileUtils;
 import org.apache.cassandra.locator.ILatencySubscriber;
+import org.apache.cassandra.metrics.CassandraMetricsRegistry;
 import org.apache.cassandra.metrics.ConnectionMetrics;
 import org.apache.cassandra.metrics.DroppedMessageMetrics;
 import org.apache.cassandra.repair.messages.RepairMessage;
@@ -338,12 +339,26 @@ public final class MessagingService implements MessagingServiceMBean
 
         DroppedMessages(Verb verb)
         {
-            this.metrics = new DroppedMessageMetrics(verb);
+            this(new DroppedMessageMetrics(verb));
+        }
+
+        DroppedMessages(DroppedMessageMetrics metrics)
+        {
+            this.metrics = metrics;
             this.droppedInternalTimeout = new AtomicInteger(0);
             this.droppedCrossNodeTimeout = new AtomicInteger(0);
         }
+    }
 
+    @VisibleForTesting
+    public void resetDroppedMessagesMap(String scope)
+    {
+        for (Verb verb : droppedMessagesMap.keySet())
+            droppedMessagesMap.put(verb, new DroppedMessages(new DroppedMessageMetrics(metricName -> {
+                return new CassandraMetricsRegistry.MetricName("DroppedMessages", metricName, scope);
+            })));
     }
+
     // total dropped message counts for server lifetime
     private final Map<Verb, DroppedMessages> droppedMessagesMap = new EnumMap<>(Verb.class);
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1dcb3131/test/unit/org/apache/cassandra/net/MessagingServiceTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/net/MessagingServiceTest.java b/test/unit/org/apache/cassandra/net/MessagingServiceTest.java
index 8631f03..3be1990 100644
--- a/test/unit/org/apache/cassandra/net/MessagingServiceTest.java
+++ b/test/unit/org/apache/cassandra/net/MessagingServiceTest.java
@@ -22,6 +22,7 @@ package org.apache.cassandra.net;
 
 import java.util.List;
 
+import org.junit.Before;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
@@ -30,6 +31,13 @@ public class MessagingServiceTest
 {
     private final MessagingService messagingService = MessagingService.test();
 
+    private static int metricScopeId = 0;
+
+    @Before
+    public void before() {
+        messagingService.resetDroppedMessagesMap(Integer.toString(metricScopeId++));;
+    }
+
     @Test
     public void testDroppedMessages()
     {


[6/6] cassandra git commit: Merge branch 'cassandra-3.11' into trunk

Posted by jj...@apache.org.
Merge branch 'cassandra-3.11' into trunk


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

Branch: refs/heads/trunk
Commit: 5ec97afce9de71eaf9b63bf6ac406aee344d860c
Parents: 9d93365 1092f5e
Author: Jeff Jirsa <je...@jeffjirsa.net>
Authored: Fri Mar 17 15:28:33 2017 -0700
Committer: Jeff Jirsa <je...@jeffjirsa.net>
Committed: Fri Mar 17 15:29:36 2017 -0700

----------------------------------------------------------------------
 CHANGES.txt                                        |  1 +
 .../cassandra/metrics/DroppedMessageMetrics.java   |  6 +++++-
 .../org/apache/cassandra/net/MessagingService.java | 17 ++++++++++++++++-
 .../apache/cassandra/net/MessagingServiceTest.java |  3 +++
 4 files changed, 25 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/5ec97afc/CHANGES.txt
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5ec97afc/src/java/org/apache/cassandra/net/MessagingService.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5ec97afc/test/unit/org/apache/cassandra/net/MessagingServiceTest.java
----------------------------------------------------------------------


[3/6] cassandra git commit: Use a unique metric reservoir per test run when using Cassandra-wide metrics residing in MBeans

Posted by jj...@apache.org.
Use a unique metric reservoir per test run when using Cassandra-wide metrics residing in MBeans

Patch by Alex Petrov; reviewed by Michael Kjellman for CASSANDRA-13216.


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

Branch: refs/heads/trunk
Commit: 1dcb3131a4d7417634551456f1fe3f519fa17fd0
Parents: 5918375
Author: Alex Petrov <ol...@gmail.com>
Authored: Mon Mar 6 08:44:53 2017 +0100
Committer: Jeff Jirsa <je...@jeffjirsa.net>
Committed: Fri Mar 17 15:26:14 2017 -0700

----------------------------------------------------------------------
 CHANGES.txt                                        |  1 +
 .../cassandra/metrics/DroppedMessageMetrics.java   |  6 +++++-
 .../org/apache/cassandra/net/MessagingService.java | 17 ++++++++++++++++-
 .../apache/cassandra/net/MessagingServiceTest.java |  8 ++++++++
 4 files changed, 30 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1dcb3131/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 2017b78..97d8561 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.0.13
+ * Applying: Use a unique metric reservoir per test run when using Cassandra-wide metrics residing in MBeans (CASSANDRA-13216)
  * Propagate row deletions in 2i tables on upgrade (CASSANDRA-13320)
  * Slice.isEmpty() returns false for some empty slices (CASSANDRA-13305)
  * Add formatted row output to assertEmpty in CQL Tester (CASSANDRA-13238)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1dcb3131/src/java/org/apache/cassandra/metrics/DroppedMessageMetrics.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/metrics/DroppedMessageMetrics.java b/src/java/org/apache/cassandra/metrics/DroppedMessageMetrics.java
index 58c80fb..6d16f8b 100644
--- a/src/java/org/apache/cassandra/metrics/DroppedMessageMetrics.java
+++ b/src/java/org/apache/cassandra/metrics/DroppedMessageMetrics.java
@@ -32,7 +32,11 @@ public class DroppedMessageMetrics
 
     public DroppedMessageMetrics(MessagingService.Verb verb)
     {
-        MetricNameFactory factory = new DefaultNameFactory("DroppedMessage", verb.toString());
+        this(new DefaultNameFactory("DroppedMessage", verb.toString()));
+    }
+
+    public DroppedMessageMetrics(MetricNameFactory factory)
+    {
         dropped = Metrics.meter(factory.createMetricName("Dropped"));
     }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1dcb3131/src/java/org/apache/cassandra/net/MessagingService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/net/MessagingService.java b/src/java/org/apache/cassandra/net/MessagingService.java
index 31ea09e..e8095d3 100644
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@ -65,6 +65,7 @@ import org.apache.cassandra.io.util.DataInputPlus;
 import org.apache.cassandra.io.util.DataOutputPlus;
 import org.apache.cassandra.io.util.FileUtils;
 import org.apache.cassandra.locator.ILatencySubscriber;
+import org.apache.cassandra.metrics.CassandraMetricsRegistry;
 import org.apache.cassandra.metrics.ConnectionMetrics;
 import org.apache.cassandra.metrics.DroppedMessageMetrics;
 import org.apache.cassandra.repair.messages.RepairMessage;
@@ -338,12 +339,26 @@ public final class MessagingService implements MessagingServiceMBean
 
         DroppedMessages(Verb verb)
         {
-            this.metrics = new DroppedMessageMetrics(verb);
+            this(new DroppedMessageMetrics(verb));
+        }
+
+        DroppedMessages(DroppedMessageMetrics metrics)
+        {
+            this.metrics = metrics;
             this.droppedInternalTimeout = new AtomicInteger(0);
             this.droppedCrossNodeTimeout = new AtomicInteger(0);
         }
+    }
 
+    @VisibleForTesting
+    public void resetDroppedMessagesMap(String scope)
+    {
+        for (Verb verb : droppedMessagesMap.keySet())
+            droppedMessagesMap.put(verb, new DroppedMessages(new DroppedMessageMetrics(metricName -> {
+                return new CassandraMetricsRegistry.MetricName("DroppedMessages", metricName, scope);
+            })));
     }
+
     // total dropped message counts for server lifetime
     private final Map<Verb, DroppedMessages> droppedMessagesMap = new EnumMap<>(Verb.class);
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1dcb3131/test/unit/org/apache/cassandra/net/MessagingServiceTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/net/MessagingServiceTest.java b/test/unit/org/apache/cassandra/net/MessagingServiceTest.java
index 8631f03..3be1990 100644
--- a/test/unit/org/apache/cassandra/net/MessagingServiceTest.java
+++ b/test/unit/org/apache/cassandra/net/MessagingServiceTest.java
@@ -22,6 +22,7 @@ package org.apache.cassandra.net;
 
 import java.util.List;
 
+import org.junit.Before;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
@@ -30,6 +31,13 @@ public class MessagingServiceTest
 {
     private final MessagingService messagingService = MessagingService.test();
 
+    private static int metricScopeId = 0;
+
+    @Before
+    public void before() {
+        messagingService.resetDroppedMessagesMap(Integer.toString(metricScopeId++));;
+    }
+
     @Test
     public void testDroppedMessages()
     {


[5/6] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.11

Posted by jj...@apache.org.
Merge branch 'cassandra-3.0' into cassandra-3.11


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

Branch: refs/heads/cassandra-3.11
Commit: 1092f5e717dd6a6165df21df04ee17c4a8a96eb6
Parents: c3d3e1a 1dcb313
Author: Jeff Jirsa <je...@jeffjirsa.net>
Authored: Fri Mar 17 15:26:45 2017 -0700
Committer: Jeff Jirsa <je...@jeffjirsa.net>
Committed: Fri Mar 17 15:27:18 2017 -0700

----------------------------------------------------------------------
 CHANGES.txt                                        |  1 +
 .../cassandra/metrics/DroppedMessageMetrics.java   |  6 +++++-
 .../org/apache/cassandra/net/MessagingService.java | 17 ++++++++++++++++-
 .../apache/cassandra/net/MessagingServiceTest.java |  3 +++
 4 files changed, 25 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1092f5e7/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 24e8c5f,97d8561..44321ef
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,16 -1,5 +1,17 @@@
 -3.0.13
 +3.11.0
 + * Support unaligned memory access for AArch64 (CASSANDRA-13326)
 + * Improve SASI range iterator efficiency on intersection with an empty range (CASSANDRA-12915).
 + * Fix equality comparisons of columns using the duration type (CASSANDRA-13174)
 + * Obfuscate password in stress-graphs (CASSANDRA-12233)
 + * Move to FastThreadLocalThread and FastThreadLocal (CASSANDRA-13034)
 + * nodetool stopdaemon errors out (CASSANDRA-13030)
 + * Tables in system_distributed should not use gcgs of 0 (CASSANDRA-12954)
 + * Fix primary index calculation for SASI (CASSANDRA-12910)
 + * More fixes to the TokenAllocator (CASSANDRA-12990)
 + * NoReplicationTokenAllocator should work with zero replication factor (CASSANDRA-12983)
 + * Address message coalescing regression (CASSANDRA-12676)
 +Merged from 3.0:
+  * Applying: Use a unique metric reservoir per test run when using Cassandra-wide metrics residing in MBeans (CASSANDRA-13216)
   * Propagate row deletions in 2i tables on upgrade (CASSANDRA-13320)
   * Slice.isEmpty() returns false for some empty slices (CASSANDRA-13305)
   * Add formatted row output to assertEmpty in CQL Tester (CASSANDRA-13238)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1092f5e7/src/java/org/apache/cassandra/metrics/DroppedMessageMetrics.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/metrics/DroppedMessageMetrics.java
index 2a94c9f,6d16f8b..794fa9c
--- a/src/java/org/apache/cassandra/metrics/DroppedMessageMetrics.java
+++ b/src/java/org/apache/cassandra/metrics/DroppedMessageMetrics.java
@@@ -32,17 -30,13 +32,21 @@@ public class DroppedMessageMetric
      /** Number of dropped messages */
      public final Meter dropped;
  
 +    /** The dropped latency within node */
 +    public final Timer internalDroppedLatency;
 +
 +    /** The cross node dropped latency */
 +    public final Timer crossNodeDroppedLatency;
 +
      public DroppedMessageMetrics(MessagingService.Verb verb)
      {
-         MetricNameFactory factory = new DefaultNameFactory("DroppedMessage", verb.toString());
+         this(new DefaultNameFactory("DroppedMessage", verb.toString()));
+     }
+ 
+     public DroppedMessageMetrics(MetricNameFactory factory)
+     {
          dropped = Metrics.meter(factory.createMetricName("Dropped"));
 +        internalDroppedLatency = Metrics.timer(factory.createMetricName("InternalDroppedLatency"));
 +        crossNodeDroppedLatency = Metrics.timer(factory.createMetricName("CrossNodeDroppedLatency"));
      }
  }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1092f5e7/src/java/org/apache/cassandra/net/MessagingService.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/net/MessagingService.java
index 25285e5,e8095d3..e377722
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@@ -70,9 -65,9 +70,10 @@@ import org.apache.cassandra.io.util.Dat
  import org.apache.cassandra.io.util.DataOutputPlus;
  import org.apache.cassandra.io.util.FileUtils;
  import org.apache.cassandra.locator.ILatencySubscriber;
+ import org.apache.cassandra.metrics.CassandraMetricsRegistry;
  import org.apache.cassandra.metrics.ConnectionMetrics;
  import org.apache.cassandra.metrics.DroppedMessageMetrics;
 +import org.apache.cassandra.metrics.MessagingMetrics;
  import org.apache.cassandra.repair.messages.RepairMessage;
  import org.apache.cassandra.security.SSLFactory;
  import org.apache.cassandra.service.*;
@@@ -431,12 -339,26 +432,26 @@@ public final class MessagingService imp
  
          DroppedMessages(Verb verb)
          {
-             this.metrics = new DroppedMessageMetrics(verb);
+             this(new DroppedMessageMetrics(verb));
+         }
+ 
+         DroppedMessages(DroppedMessageMetrics metrics)
+         {
+             this.metrics = metrics;
 -            this.droppedInternalTimeout = new AtomicInteger(0);
 -            this.droppedCrossNodeTimeout = new AtomicInteger(0);
 +            this.droppedInternal = new AtomicInteger(0);
 +            this.droppedCrossNode = new AtomicInteger(0);
          }
+     }
  
+     @VisibleForTesting
+     public void resetDroppedMessagesMap(String scope)
+     {
+         for (Verb verb : droppedMessagesMap.keySet())
+             droppedMessagesMap.put(verb, new DroppedMessages(new DroppedMessageMetrics(metricName -> {
+                 return new CassandraMetricsRegistry.MetricName("DroppedMessages", metricName, scope);
+             })));
      }
+ 
      // total dropped message counts for server lifetime
      private final Map<Verb, DroppedMessages> droppedMessagesMap = new EnumMap<>(Verb.class);
  

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1092f5e7/test/unit/org/apache/cassandra/net/MessagingServiceTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/net/MessagingServiceTest.java
index 11d17b8,3be1990..c1dcfc5
--- a/test/unit/org/apache/cassandra/net/MessagingServiceTest.java
+++ b/test/unit/org/apache/cassandra/net/MessagingServiceTest.java
@@@ -50,24 -29,13 +50,27 @@@ import static org.junit.Assert.*
  
  public class MessagingServiceTest
  {
 +    private final static long ONE_SECOND = TimeUnit.NANOSECONDS.convert(1, TimeUnit.SECONDS);
 +    private final static long[] bucketOffsets = new EstimatedHistogram(160).getBucketOffsets();
      private final MessagingService messagingService = MessagingService.test();
  
 +    @BeforeClass
 +    public static void beforeClass() throws UnknownHostException
 +    {
 +        DatabaseDescriptor.daemonInitialization();
 +        DatabaseDescriptor.setBackPressureStrategy(new MockBackPressureStrategy(Collections.emptyMap()));
 +        DatabaseDescriptor.setBroadcastAddress(InetAddress.getByName("127.0.0.1"));
 +    }
 +
+     private static int metricScopeId = 0;
+ 
      @Before
 -    public void before() {
 -        messagingService.resetDroppedMessagesMap(Integer.toString(metricScopeId++));;
 +    public void before() throws UnknownHostException
 +    {
++        messagingService.resetDroppedMessagesMap(Integer.toString(metricScopeId++));
 +        MockBackPressureStrategy.applied = false;
 +        messagingService.destroyConnectionPool(InetAddress.getByName("127.0.0.2"));
 +        messagingService.destroyConnectionPool(InetAddress.getByName("127.0.0.3"));
      }
  
      @Test