You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2010/10/29 18:53:31 UTC

svn commit: r1028835 - in /cassandra/branches/cassandra-0.7: CHANGES.txt src/java/org/apache/cassandra/net/MessagingService.java src/java/org/apache/cassandra/service/GCInspector.java

Author: jbellis
Date: Fri Oct 29 16:53:31 2010
New Revision: 1028835

URL: http://svn.apache.org/viewvc?rev=1028835&view=rev
Log:
merge from 0.7

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

Modified: cassandra/branches/cassandra-0.7/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1028835&r1=1028834&r2=1028835&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.7/CHANGES.txt Fri Oct 29 16:53:31 2010
@@ -4,6 +4,7 @@ dev
  * upgrade to SLF4J 1.6.1
  * fix ByteBuffer bug in ExpiringColumn.updateDigest (CASSANDRA-1679)
  * fix IntegerType.getString (CASSANDRA-1681)
+ * log tpstats when dropping messages (CASSANDRA-1660)
 
 
 0.7.0-beta3

Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/net/MessagingService.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/net/MessagingService.java?rev=1028835&r1=1028834&r2=1028835&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/net/MessagingService.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/net/MessagingService.java Fri Oct 29 16:53:31 2010
@@ -47,6 +47,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.streaming.FileStreamTask;
 import org.apache.cassandra.streaming.StreamHeader;
@@ -77,7 +78,7 @@ public class MessagingService implements
     private static NonBlockingHashMap<InetAddress, OutboundTcpConnectionPool> connectionManagers_ = new NonBlockingHashMap<InetAddress, OutboundTcpConnectionPool>();
     
     private static Logger logger_ = LoggerFactory.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();
 
@@ -516,16 +517,21 @@ public class MessagingService implements
                
     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("Dropped {} {} messages in the last {}ms",
                              new Object[] {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.7/src/java/org/apache/cassandra/service/GCInspector.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/GCInspector.java?rev=1028835&r1=1028834&r2=1028835&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/GCInspector.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/GCInspector.java Fri Oct 29 16:53:31 2010
@@ -135,25 +135,26 @@ 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"));
-        Set<ObjectName> requests = server.queryNames(new ObjectName("org.apache.cassandra.request:type=*"), null);
-        Set<ObjectName> internal = server.queryNames(new ObjectName("org.apache.cassandra.internal:type=*"), null);
-        for (ObjectName objectName : Iterables.concat(requests, internal))
+        Set<ObjectName> request, internal;
+        try
+        {
+            request = server.queryNames(new ObjectName("org.apache.cassandra.request:type=*"), null);
+            internal = server.queryNames(new ObjectName("org.apache.cassandra.internal:type=*"), null);
+        }
+        catch (MalformedObjectNameException e)
+        {
+            throw new RuntimeException(e);
+        }
+        for (ObjectName objectName : Iterables.concat(request, internal))
         {
             String poolName = objectName.getKeyProperty("type");
             IExecutorMBean threadPoolProxy = JMX.newMBeanProxy(server, objectName, IExecutorMBean.class);