qpid-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From acon...@apache.org
Subject svn commit: r1163766 - in /qpid/trunk/qpid/cpp/src/qpid/cluster: Cluster.cpp Cluster.h Connection.cpp Multicaster.cpp
Date Wed, 31 Aug 2011 19:49:05 GMT
Author: aconway
Date: Wed Aug 31 19:49:04 2011
New Revision: 1163766

URL: http://svn.apache.org/viewvc?rev=1163766&view=rev
Log:
NO-JIRA: Suppress logging of clock events in cluster code.

Clock events are much too frequent to log, doing so makes trace
logging useless for clustered brokers.

Modified:
    qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp
    qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.h
    qpid/trunk/qpid/cpp/src/qpid/cluster/Connection.cpp
    qpid/trunk/qpid/cpp/src/qpid/cluster/Multicaster.cpp

Modified: qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp?rev=1163766&r1=1163765&r2=1163766&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp Wed Aug 31 19:49:04 2011
@@ -526,7 +526,7 @@ void Cluster::deliveredFrame(const Event
 
 void Cluster::processFrame(const EventFrame& e, Lock& l) {
     if (e.isCluster()) {
-        QPID_LOG(trace, *this << " DLVR: " << e);
+        QPID_LOG_IF(trace, loggable(e.frame), *this << " DLVR: " << e);
         ClusterDispatcher dispatch(*this, e.connectionId.getMember(), l);
         if (!framing::invoke(dispatch, *e.frame.getBody()).wasHandled())
             throw Exception(QPID_MSG("Invalid cluster control"));
@@ -535,14 +535,15 @@ void Cluster::processFrame(const EventFr
         map.incrementFrameSeq();
         ConnectionPtr connection = getConnection(e, l);
         if (connection) {
-            QPID_LOG(trace, *this << " DLVR " << map.getFrameSeq() << ":
 " << e);
+            QPID_LOG_IF(trace, loggable(e.frame),
+                        *this << " DLVR " << map.getFrameSeq() << ":  "
<< e);
             connection->deliveredFrame(e);
         }
         else
             throw Exception(QPID_MSG("Unknown connection: " << e));
     }
     else // Drop connection frames while state < CATCHUP
-        QPID_LOG(trace, *this << " DROP (joining): " << e);
+        QPID_LOG_IF(trace, loggable(e.frame), *this << " DROP (joining): " <<
e);
 }
 
 // Called in deliverFrameQueue thread
@@ -1219,4 +1220,12 @@ bool Cluster::deferDeliveryImpl(const st
     return true;
 }
 
+bool Cluster::loggable(const AMQFrame& f) {
+    const  AMQMethodBody* method = (f.getMethod());
+    if (!method) return true;     // Not a method
+    bool isClock = method->amqpClassId() ==  ClusterClockBody::CLASS_ID
+        && method->amqpMethodId() == ClusterClockBody::METHOD_ID;
+    return !isClock;
+}
+
 }} // namespace qpid::cluster

Modified: qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.h?rev=1163766&r1=1163765&r2=1163766&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.h Wed Aug 31 19:49:04 2011
@@ -59,6 +59,7 @@ class Message;
 }
 
 namespace framing {
+class AMQFrame;
 class AMQBody;
 struct Uuid;
 }
@@ -95,10 +96,10 @@ class Cluster : private Cpg::Handler, pu
     void initialize();
 
     // Connection map.
-    void addLocalConnection(const ConnectionPtr&); 
-    void addShadowConnection(const ConnectionPtr&); 
-    void erase(const ConnectionId&);       
-    
+    void addLocalConnection(const ConnectionPtr&);
+    void addShadowConnection(const ConnectionPtr&);
+    void erase(const ConnectionId&);
+
     // URLs of current cluster members.
     std::vector<std::string> getIds() const;
     std::vector<Url> getUrls() const;
@@ -113,7 +114,7 @@ class Cluster : private Cpg::Handler, pu
     void updateInRetracted();
     // True if we are expecting to receive catch-up connections.
     bool isExpectingUpdate();
-    
+
     MemberId getId() const;
     broker::Broker& getBroker() const;
     Multicaster& getMulticast() { return mcast; }
@@ -144,6 +145,9 @@ class Cluster : private Cpg::Handler, pu
     sys::AbsTime getClusterTime();
     void sendClockUpdate();
     void clock(const uint64_t time);
+
+    static bool loggable(const framing::AMQFrame&); // True if the frame should be logged.
+
   private:
     typedef sys::Monitor::ScopedLock Lock;
 
@@ -153,10 +157,10 @@ class Cluster : private Cpg::Handler, pu
 
     /** Version number of the cluster protocol, to avoid mixed versions. */
     static const uint32_t CLUSTER_VERSION;
-    
+
     // NB: A dummy Lock& parameter marks functions that must only be
     // called with Cluster::lock  locked.
- 
+
     void leave(Lock&);
     std::vector<std::string> getIds(Lock&) const;
     std::vector<Url> getUrls(Lock&) const;
@@ -165,11 +169,11 @@ class Cluster : private Cpg::Handler, pu
     void brokerShutdown();
 
     // == Called in deliverEventQueue thread
-    void deliveredEvent(const Event&); 
+    void deliveredEvent(const Event&);
 
     // == Called in deliverFrameQueue thread
-    void deliveredFrame(const EventFrame&); 
-    void processFrame(const EventFrame&, Lock&); 
+    void deliveredFrame(const EventFrame&);
+    void processFrame(const EventFrame&, Lock&);
 
     // Cluster controls implement XML methods from cluster.xml.
     void updateRequest(const MemberId&, const std::string&, Lock&);
@@ -204,7 +208,7 @@ class Cluster : private Cpg::Handler, pu
     void setReady(Lock&);
     void memberUpdate(Lock&);
     void setClusterId(const framing::Uuid&, Lock&);
-    void erase(const ConnectionId&, Lock&);       
+    void erase(const ConnectionId&, Lock&);
     void requestUpdate(Lock& );
     void initMapCompleted(Lock&);
     void becomeElder(Lock&);
@@ -212,7 +216,7 @@ class Cluster : private Cpg::Handler, pu
     void updateMgmtMembership(Lock&);
 
     // == Called in CPG dispatch thread
-    void deliver( // CPG deliver callback. 
+    void deliver( // CPG deliver callback.
         cpg_handle_t /*handle*/,
         const struct cpg_name *group,
         uint32_t /*nodeid*/,
@@ -221,7 +225,7 @@ class Cluster : private Cpg::Handler, pu
         int /*msg_len*/);
 
     void deliverEvent(const Event&);
-    
+
     void configChange( // CPG config change callback.
         cpg_handle_t /*handle*/,
         const struct cpg_name */*group*/,
@@ -272,7 +276,7 @@ class Cluster : private Cpg::Handler, pu
     // Used only in deliverEventQueue thread or when stalled for update.
     Decoder decoder;
     bool discarding;
-    
+
 
     // Remaining members are protected by lock.
     mutable sys::Monitor lock;
@@ -285,7 +289,7 @@ class Cluster : private Cpg::Handler, pu
         JOINER,  ///< Sent update request, waiting for update offer.
         UPDATEE, ///< Stalled receive queue at update offer, waiting for update to complete.
         CATCHUP, ///< Update complete, unstalled but has not yet seen own "ready" event.
-        READY,   ///< Fully operational 
+        READY,   ///< Fully operational
         OFFER,   ///< Sent an offer, waiting for accept/reject.
         UPDATER, ///< Offer accepted, sending a state update.
         LEFT     ///< Final state, left the cluster.

Modified: qpid/trunk/qpid/cpp/src/qpid/cluster/Connection.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/cluster/Connection.cpp?rev=1163766&r1=1163765&r2=1163766&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/cluster/Connection.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/cluster/Connection.cpp Wed Aug 31 19:49:04 2011
@@ -196,7 +196,7 @@ void Connection::received(framing::AMQFr
                  << *this << ": " << f);
         return;
     }
-    QPID_LOG(trace, cluster << " RECV " << *this << ": " << f);
+    QPID_LOG_IF(trace, Cluster::loggable(f), cluster << " RECV " << *this <<
": " << f);
     if (isLocal()) {            // Local catch-up connection.
         currentChannel = f.getChannel();
         if (!framing::invoke(*this, *f.getBody()).wasHandled())

Modified: qpid/trunk/qpid/cpp/src/qpid/cluster/Multicaster.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/cluster/Multicaster.cpp?rev=1163766&r1=1163765&r2=1163766&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/cluster/Multicaster.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/cluster/Multicaster.cpp Wed Aug 31 19:49:04 2011
@@ -21,6 +21,7 @@
 
 #include "qpid/cluster/Multicaster.h"
 #include "qpid/cluster/Cpg.h"
+#include "qpid/cluster/Cluster.h"
 #include "qpid/log/Statement.h"
 #include "qpid/framing/AMQBody.h"
 #include "qpid/framing/AMQFrame.h"
@@ -58,7 +59,7 @@ void Multicaster::mcast(const Event& e) 
             return;
         }
     }
-    QPID_LOG(trace, "MCAST " << e);
+    QPID_LOG_IF(trace, e.isControl() && Cluster::loggable(e.getFrame()), "MCAST "
<< e);
     if (bypass) {               // direct, don't queue
         iovec iov = e.toIovec();
         while (!cpg.mcast(&iov, 1))



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org


Mime
View raw message