Author: jbellis
Date: Fri Oct 29 16:51:59 2010
New Revision: 1028834

URL: http://svn.apache.org/viewvc?rev=1028834&view=rev
Log:
log tpstats when dropping messages.  patch by jbellis; reviewed by 
brandonwilliams for CASSANDRA-1660

Modified:
    cassandra/branches/cassandra-0.6/CHANGES.txt
    
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/net/MessagingService.java
    
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/service/GCInspector.java

Modified: cassandra/branches/cassandra-0.6/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.6/CHANGES.txt?rev=1028834&r1=1028833&r2=1028834&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.6/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.6/CHANGES.txt Fri Oct 29 16:51:59 2010
@@ -4,6 +4,7 @@ dev
  * fix hinted handoff replay (CASSANDRA-1656)
  * log type of dropped messages (CASSANDRA-1677)
  * initMetadata wasn't loading saved partitioner from disk (CASSANDRA-1638)
+ * log tpstats when dropping messages (CASSANDRA-1660)
 
 
 0.6.6

Modified: 
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/net/MessagingService.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/net/MessagingService.java?rev=1028834&r1=1028833&r2=1028834&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/net/MessagingService.java
 (original)
+++ 
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/net/MessagingService.java
 Fri Oct 29 16:51:59 2010
@@ -41,6 +41,7 @@ import org.apache.cassandra.config.Datab
 import org.apache.cassandra.io.util.DataOutputBuffer;
 import org.apache.cassandra.net.io.SerializerType;
 import org.apache.cassandra.net.sink.SinkManager;
+import org.apache.cassandra.service.GCInspector;
 import org.apache.cassandra.service.StorageService;
 import org.apache.cassandra.utils.ExpiringMap;
 import org.apache.cassandra.utils.GuidGenerator;
@@ -72,7 +73,7 @@ public class MessagingService
     private static NonBlockingHashMap<InetAddress, OutboundTcpConnectionPool> 
connectionManagers_ = new NonBlockingHashMap<InetAddress, 
OutboundTcpConnectionPool>();
     
     private static Logger logger_ = Logger.getLogger(MessagingService.class);
-    private static int LOG_DROPPED_INTERVAL_IN_MS = 1000;
+    private static int LOG_DROPPED_INTERVAL_IN_MS = 5000;
     
     public static final MessagingService instance = new MessagingService();
 
@@ -499,16 +500,21 @@ public class MessagingService
                
     private static void logDroppedMessages()
     {
+        boolean logTpstats = false;
         for (Map.Entry<StorageService.Verb, AtomicInteger> entry : 
droppedMessages.entrySet())
         {
             AtomicInteger dropped = entry.getValue();
             if (dropped.get() > 0)
             {
+                logTpstats = true;
                 logger_.warn(String.format("Dropped %s %s messages in the last 
%sms",
                                            dropped, entry.getKey(), 
LOG_DROPPED_INTERVAL_IN_MS));
             }
             dropped.set(0);
         }
+
+        if (logTpstats)
+            GCInspector.instance.logStats();
     }
 
     private class SocketThread extends Thread

Modified: 
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/service/GCInspector.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/service/GCInspector.java?rev=1028834&r1=1028833&r2=1028834&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/service/GCInspector.java
 (original)
+++ 
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/service/GCInspector.java
 Fri Oct 29 16:51:59 2010
@@ -132,23 +132,25 @@ public class GCInspector
                 logger.debug(st);
             if (gcw.getDuration() > MIN_DURATION_TPSTATS)
             {
-                try
-                {
-                    logStats();
-                }
-                catch (MalformedObjectNameException e)
-                {
-                    throw new RuntimeException(e);
-                }
+                logStats();
             }
         }
     }
 
-    private void logStats() throws MalformedObjectNameException
+    public void logStats()
     {
         // everything from o.a.c.concurrent
         logger.info(String.format("%-25s%10s%10s", "Pool Name", "Active", 
"Pending"));
-        for (ObjectName objectName : server.queryNames(new 
ObjectName("org.apache.cassandra.concurrent:type=*"), null))
+        ObjectName concurrent = null;
+        try
+        {
+            concurrent = new 
ObjectName("org.apache.cassandra.concurrent:type=*");
+        }
+        catch (MalformedObjectNameException e)
+        {
+            throw new RuntimeException(e);
+        }
+        for (ObjectName objectName : server.queryNames(concurrent, null))
         {
             String poolName = objectName.getKeyProperty("type");
             IExecutorMBean threadPoolProxy = JMX.newMBeanProxy(server, 
objectName, IExecutorMBean.class);


Reply via email to