You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by yu...@apache.org on 2013/09/13 18:57:00 UTC

[2/6] git commit: Move hints and exception count to o.a.c.metrics

Move hints and exception count to o.a.c.metrics

patch by yukim; reviewed by jbellis for CASSANDRA-6017


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

Branch: refs/heads/cassandra-2.0
Commit: 0e18f23c5cb7080b3bbaee15b87001b323fd1c29
Parents: 806a452
Author: Yuki Morishita <yu...@apache.org>
Authored: Fri Sep 13 11:46:01 2013 -0500
Committer: Yuki Morishita <yu...@apache.org>
Committed: Fri Sep 13 11:46:01 2013 -0500

----------------------------------------------------------------------
 CHANGES.txt                                        |  1 +
 .../apache/cassandra/metrics/StorageMetrics.java   |  3 +++
 .../apache/cassandra/service/CassandraDaemon.java  |  5 ++---
 .../org/apache/cassandra/service/StorageProxy.java | 17 ++++++++---------
 .../apache/cassandra/service/StorageService.java   |  2 +-
 .../cassandra/service/StorageServiceMBean.java     |  1 +
 6 files changed, 16 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/0e18f23c/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index e124ac0..ad32460 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -18,6 +18,7 @@
  * Replace the deprecated MapMaker with CacheLoader (CASSANDRA-6007)
  * Add SSTableDeletingNotification to DataTracker (CASSANDRA-6010)
  * Fix snapshots in use get deleted during snapshot repair (CASSANDRA-6011)
+ * Move hints and exception count to o.a.c.metrics (CASSANDRA-6017)
 
 
 1.2.9

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0e18f23c/src/java/org/apache/cassandra/metrics/StorageMetrics.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/metrics/StorageMetrics.java b/src/java/org/apache/cassandra/metrics/StorageMetrics.java
index 3cda71e..ab7b886 100644
--- a/src/java/org/apache/cassandra/metrics/StorageMetrics.java
+++ b/src/java/org/apache/cassandra/metrics/StorageMetrics.java
@@ -27,4 +27,7 @@ import com.yammer.metrics.core.MetricName;
 public class StorageMetrics
 {
     public static final Counter load = Metrics.newCounter(new MetricName("org.apache.cassandra.metrics", "Storage", "Load"));
+    public static final Counter exceptions = Metrics.newCounter(new MetricName("org.apache.cassandra.metrics", "Storage", "Exceptions"));
+    public static final Counter totalHintsInProgress  = Metrics.newCounter(new MetricName("org.apache.cassandra.metrics", "Storage", "TotalHintsInProgress"));
+    public static final Counter totalHints = Metrics.newCounter(new MetricName("org.apache.cassandra.metrics", "Storage", "TotalHints"));
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0e18f23c/src/java/org/apache/cassandra/service/CassandraDaemon.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/CassandraDaemon.java b/src/java/org/apache/cassandra/service/CassandraDaemon.java
index af21f07..b2fc367 100644
--- a/src/java/org/apache/cassandra/service/CassandraDaemon.java
+++ b/src/java/org/apache/cassandra/service/CassandraDaemon.java
@@ -45,6 +45,7 @@ import org.apache.cassandra.db.commitlog.CommitLog;
 import org.apache.cassandra.db.compaction.CompactionManager;
 import org.apache.cassandra.io.FSError;
 import org.apache.cassandra.io.util.FileUtils;
+import org.apache.cassandra.metrics.StorageMetrics;
 import org.apache.cassandra.thrift.ThriftServer;
 import org.apache.cassandra.tracing.Tracing;
 import org.apache.cassandra.utils.CLibrary;
@@ -123,8 +124,6 @@ public class CassandraDaemon
 
     private static final CassandraDaemon instance = new CassandraDaemon();
 
-    static final AtomicInteger exceptions = new AtomicInteger();
-
     public Server thriftServer;
     public Server nativeServer;
 
@@ -188,7 +187,7 @@ public class CassandraDaemon
         {
             public void uncaughtException(Thread t, Throwable e)
             {
-                exceptions.incrementAndGet();
+                StorageMetrics.exceptions.inc();
                 logger.error("Exception in thread " + t, e);
                 Tracing.trace("Exception in thread " + t, e);
                 for (Throwable e2 = e; e2 != null; e2 = e2.getCause())

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0e18f23c/src/java/org/apache/cassandra/service/StorageProxy.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageProxy.java b/src/java/org/apache/cassandra/service/StorageProxy.java
index 23d73ec..be92213 100644
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@ -61,6 +61,7 @@ import org.apache.cassandra.locator.IEndpointSnitch;
 import org.apache.cassandra.locator.TokenMetadata;
 import org.apache.cassandra.metrics.ClientRequestMetrics;
 import org.apache.cassandra.metrics.ReadRepairMetrics;
+import org.apache.cassandra.metrics.StorageMetrics;
 import org.apache.cassandra.net.*;
 import org.apache.cassandra.tracing.Tracing;
 import org.apache.cassandra.utils.ByteBufferUtil;
@@ -82,7 +83,6 @@ public class StorageProxy implements StorageProxyMBean
     public static final StorageProxy instance = new StorageProxy();
 
     private static volatile int maxHintsInProgress = 1024 * FBUtilities.getAvailableProcessors();
-    private static final AtomicInteger totalHintsInProgress = new AtomicInteger();
     private static final CacheLoader<InetAddress, AtomicInteger> hintsInProgress = new CacheLoader<InetAddress, AtomicInteger>()
     {
         public AtomicInteger load(InetAddress inetAddress)
@@ -90,7 +90,6 @@ public class StorageProxy implements StorageProxyMBean
             return new AtomicInteger(0);
         }
     };
-    private static final AtomicLong totalHints = new AtomicLong();
     private static final ClientRequestMetrics readMetrics = new ClientRequestMetrics("Read");
     private static final ClientRequestMetrics rangeMetrics = new ClientRequestMetrics("RangeSlice");
     private static final ClientRequestMetrics writeMetrics = new ClientRequestMetrics("Write");
@@ -488,10 +487,10 @@ public class StorageProxy implements StorageProxyMBean
             // The idea is that if we have over maxHintsInProgress hints in flight, this is probably due to
             // a small number of nodes causing problems, so we should avoid shutting down writes completely to
             // healthy nodes.  Any node with no hintsInProgress is considered healthy.
-            if (totalHintsInProgress.get() > maxHintsInProgress
+            if (StorageMetrics.totalHintsInProgress.count() > maxHintsInProgress
                 && (getHintsInProgressFor(destination).get() > 0 && shouldHint(destination)))
             {
-                throw new OverloadedException("Too many in flight hints: " + totalHintsInProgress.get());
+                throw new OverloadedException("Too many in flight hints: " + StorageMetrics.totalHintsInProgress.count());
             }
 
             if (FailureDetector.instance.isAlive(destination))
@@ -583,7 +582,7 @@ public class StorageProxy implements StorageProxyMBean
 
     private static Future<Void> submitHint(HintRunnable runnable)
     {
-        totalHintsInProgress.incrementAndGet();
+        StorageMetrics.totalHintsInProgress.inc();
         getHintsInProgressFor(runnable.target).incrementAndGet();
         return (Future<Void>) StageManager.getStage(Stage.MUTATION).submit(runnable);
     }
@@ -599,7 +598,7 @@ public class StorageProxy implements StorageProxyMBean
         }
         assert hostId != null : "Missing host ID for " + target.getHostAddress();
         mutation.toHint(ttl, hostId).apply();
-        totalHints.incrementAndGet();
+        StorageMetrics.totalHints.inc();
     }
 
     private static void sendMessagesToOneDC(MessageOut message, Collection<InetAddress> targets, boolean localDC, AbstractWriteResponseHandler handler)
@@ -1685,7 +1684,7 @@ public class StorageProxy implements StorageProxyMBean
             }
             finally
             {
-                totalHintsInProgress.decrementAndGet();
+                StorageMetrics.totalHintsInProgress.dec();
                 getHintsInProgressFor(target).decrementAndGet();
             }
         }
@@ -1695,7 +1694,7 @@ public class StorageProxy implements StorageProxyMBean
 
     public long getTotalHints()
     {
-        return totalHints.get();
+        return StorageMetrics.totalHints.count();
     }
 
     public int getMaxHintsInProgress()
@@ -1710,7 +1709,7 @@ public class StorageProxy implements StorageProxyMBean
 
     public int getHintsInProgress()
     {
-        return totalHintsInProgress.get();
+        return (int) StorageMetrics.totalHintsInProgress.count();
     }
 
     public void verifyNoHintsInProgress()

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0e18f23c/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java
index 2c3a1c8..7a5bbbc 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -3859,7 +3859,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
 
     public int getExceptionCount()
     {
-        return CassandraDaemon.exceptions.get();
+        return (int)StorageMetrics.exceptions.count();
     }
 
     public void rescheduleFailedDeletions()

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0e18f23c/src/java/org/apache/cassandra/service/StorageServiceMBean.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageServiceMBean.java b/src/java/org/apache/cassandra/service/StorageServiceMBean.java
index 2c63b46..4fbed9c 100644
--- a/src/java/org/apache/cassandra/service/StorageServiceMBean.java
+++ b/src/java/org/apache/cassandra/service/StorageServiceMBean.java
@@ -403,6 +403,7 @@ public interface StorageServiceMBean extends NotificationEmitter
     public void joinRing() throws IOException;
     public boolean isJoined();
 
+    @Deprecated
     public int getExceptionCount();
 
     public void setStreamThroughputMbPerSec(int value);