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