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);