Author: jbellis Date: Tue Aug 9 20:47:35 2011 New Revision: 1155558 URL: http://svn.apache.org/viewvc?rev=1155558&view=rev Log: switch back to only logging recent dropped messages patch by jbellis; reviewed by brandonwilliams for CASSANDRA-3004
Modified: cassandra/branches/cassandra-0.8/CHANGES.txt cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/net/MessagingService.java Modified: cassandra/branches/cassandra-0.8/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1155558&r1=1155557&r2=1155558&view=diff ============================================================================== --- cassandra/branches/cassandra-0.8/CHANGES.txt (original) +++ cassandra/branches/cassandra-0.8/CHANGES.txt Tue Aug 9 20:47:35 2011 @@ -3,6 +3,7 @@ * use JAVA env var in cassandra-env.sh (CASSANDRA-2785, 2992) * avoid doing read for no-op replicate-on-write at CL=1 (CASSANDRA-2892) * refuse counter write for CL.ANY (CASSANDRA-2990) + * switch back to only logging recent dropped messages (CASSANDRA-3004) 0.8.3 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/net/MessagingService.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/net/MessagingService.java?rev=1155558&r1=1155557&r2=1155558&view=diff ============================================================================== --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/net/MessagingService.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/net/MessagingService.java Tue Aug 9 20:47:35 2011 @@ -100,18 +100,11 @@ public final class MessagingService impl private final Map<StorageService.Verb, AtomicInteger> droppedMessages = new EnumMap<StorageService.Verb, AtomicInteger>(StorageService.Verb.class); // dropped count when last requested for the Recent api. high concurrency isn't necessary here. private final Map<StorageService.Verb, Integer> lastDropped = Collections.synchronizedMap(new EnumMap<StorageService.Verb, Integer>(StorageService.Verb.class)); + private final Map<StorageService.Verb, Integer> lastDroppedInternal = new EnumMap<StorageService.Verb, Integer>(StorageService.Verb.class); private final List<ILatencySubscriber> subscribers = new ArrayList<ILatencySubscriber>(); private static final long DEFAULT_CALLBACK_TIMEOUT = (long) (1.1 * DatabaseDescriptor.getRpcTimeout()); - { - for (StorageService.Verb verb : DROPPABLE_VERBS) - { - droppedMessages.put(verb, new AtomicInteger()); - lastDropped.put(verb, 0); - } - } - private static class MSHandle { public static final MessagingService instance = new MessagingService(); @@ -123,6 +116,13 @@ public final class MessagingService impl private MessagingService() { + for (StorageService.Verb verb : DROPPABLE_VERBS) + { + droppedMessages.put(verb, new AtomicInteger()); + lastDropped.put(verb, 0); + lastDroppedInternal.put(verb, 0); + } + listenGate = new SimpleCondition(); verbHandlers_ = new EnumMap<StorageService.Verb, IVerbHandler>(StorageService.Verb.class); streamExecutor_ = new DebuggableThreadPoolExecutor("Streaming", DatabaseDescriptor.getCompactionThreadPriority()); @@ -584,11 +584,13 @@ public final class MessagingService impl for (Map.Entry<StorageService.Verb, AtomicInteger> entry : droppedMessages.entrySet()) { AtomicInteger dropped = entry.getValue(); - if (dropped.get() > 0) + StorageService.Verb verb = entry.getKey(); + int recent = dropped.get() - lastDroppedInternal.get(verb); + if (recent > 0) { logTpstats = true; - logger_.info("{} {} messages dropped in server lifetime", - dropped, entry.getKey()); + logger_.info("{} {} messages dropped in server lifetime", recent, verb); + lastDroppedInternal.put(verb, dropped.get()); } }