You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zy...@apache.org on 2011/08/31 10:03:26 UTC

svn commit: r1163519 - in /trafficserver/traffic/trunk: CHANGES iocore/cluster/ClusterConfig.cc iocore/cluster/ClusterHandler.cc iocore/cluster/ClusterHandlerBase.cc iocore/cluster/ClusterProcessor.cc

Author: zym
Date: Wed Aug 31 08:03:26 2011
New Revision: 1163519

URL: http://svn.apache.org/viewvc?rev=1163519&view=rev
Log:
TS-931 cut cluster latency from 24ms to 10ms

Author: weijin
Review: zym

Modified:
    trafficserver/traffic/trunk/CHANGES
    trafficserver/traffic/trunk/iocore/cluster/ClusterConfig.cc
    trafficserver/traffic/trunk/iocore/cluster/ClusterHandler.cc
    trafficserver/traffic/trunk/iocore/cluster/ClusterHandlerBase.cc
    trafficserver/traffic/trunk/iocore/cluster/ClusterProcessor.cc

Modified: trafficserver/traffic/trunk/CHANGES
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/CHANGES?rev=1163519&r1=1163518&r2=1163519&view=diff
==============================================================================
--- trafficserver/traffic/trunk/CHANGES (original)
+++ trafficserver/traffic/trunk/CHANGES Wed Aug 31 08:03:26 2011
@@ -1,5 +1,8 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache Traffic Server 3.1.1
+  *) [TS-931] cluster latency too high, about 24ms. this change will cut
+   the latency from 20+ms to about 10ms. Author: weijin
+
   *) [TS-896] When logging config changes, we should check if it is remote
    logging and clean up the collation client related data.
 

Modified: trafficserver/traffic/trunk/iocore/cluster/ClusterConfig.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/cluster/ClusterConfig.cc?rev=1163519&r1=1163518&r2=1163519&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/cluster/ClusterConfig.cc (original)
+++ trafficserver/traffic/trunk/iocore/cluster/ClusterConfig.cc Wed Aug 31 08:03:26 2011
@@ -150,7 +150,7 @@ ClusterAccept::ClusterAcceptMachine(NetV
   ch->machine = NEW(new ClusterMachine(NULL, remote_ip));
   ch->ip = remote_ip;
   ch->net_vc = NetVC;
-  eventProcessor.schedule_imm(ch, ET_CLUSTER);
+  eventProcessor.schedule_imm_signal(ch, ET_CLUSTER);
   return 1;
 }
 

Modified: trafficserver/traffic/trunk/iocore/cluster/ClusterHandler.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/cluster/ClusterHandler.cc?rev=1163519&r1=1163518&r2=1163519&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/cluster/ClusterHandler.cc (original)
+++ trafficserver/traffic/trunk/iocore/cluster/ClusterHandler.cc Wed Aug 31 08:03:26 2011
@@ -2505,7 +2505,8 @@ ClusterHandler::mainClusterEvent(int eve
     // Process deferred open_local requests
     /////////////////////////////////////////
     if (!on_stolen_thread) {
-      do_open_local_requests();
+      if (do_open_local_requests())
+		thread->signal_hook(thread);
     }
   }
 

Modified: trafficserver/traffic/trunk/iocore/cluster/ClusterHandlerBase.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/cluster/ClusterHandlerBase.cc?rev=1163519&r1=1163518&r2=1163519&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/cluster/ClusterHandlerBase.cc (original)
+++ trafficserver/traffic/trunk/iocore/cluster/ClusterHandlerBase.cc Wed Aug 31 08:03:26 2011
@@ -587,7 +587,7 @@ ClusterState::IOComplete()
     if (lock) {
       ch->handleEvent(EVENT_IMMEDIATE, (void *) 0);
     } else {
-      eventProcessor.schedule_imm(ch, ET_CLUSTER);
+      eventProcessor.schedule_imm_signal(ch, ET_CLUSTER);
     }
   }
 }
@@ -1086,7 +1086,7 @@ ClusterHandler::startClusterEvent(int ev
 #ifdef CLUSTER_IMMEDIATE_NETIO
         e->schedule_every(-CLUSTER_PERIOD);     // Negative event
 #else
-        e->schedule_every(CLUSTER_PERIOD);
+        e->schedule_every(-CLUSTER_PERIOD);
 #endif
         cluster_periodic_event = e;
 

Modified: trafficserver/traffic/trunk/iocore/cluster/ClusterProcessor.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/cluster/ClusterProcessor.cc?rev=1163519&r1=1163518&r2=1163519&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/cluster/ClusterProcessor.cc (original)
+++ trafficserver/traffic/trunk/iocore/cluster/ClusterProcessor.cc Wed Aug 31 08:03:26 2011
@@ -136,7 +136,9 @@ ClusterProcessor::internal_invoke_remote
 
       MUTEX_TRY_LOCK(lock, ch->mutex, tt);
       if (!lock) {
-        return 1;
+		if(ch->thread && ch->thread->signal_hook)
+		  ch->thread->signal_hook(ch->thread);
+		return 1;
       }
       if (steal)
         ch->steal_thread(tt);
@@ -144,7 +146,7 @@ ClusterProcessor::internal_invoke_remote
     }
   } else {
     c->mutex = ch->mutex;
-    eventProcessor.schedule_imm(c);
+    eventProcessor.schedule_imm_signal(c);
     return 0;
   }
 }
@@ -265,6 +267,8 @@ ClusterProcessor::open_local(Continuatio
     }
     vc->action_ = cont;
     ink_atomiclist_push(&ch->external_incoming_open_local, (void *) vc);
+	if(ch->thread && ch->thread->signal_hook)
+	  ch->thread->signal_hook(ch->thread);
     return CLUSTER_DELAYED_OPEN;
 
 #ifdef CLUSTER_THREAD_STEALING
@@ -330,7 +334,7 @@ ClusterProcessor::connect_local(Continua
     }
     vc->mutex = ch->mutex;
     vc->action_ = cont;
-    ch->thread->schedule_imm(vc);
+    ch->thread->schedule_imm_signal(vc);
     return CLUSTER_DELAYED_OPEN;
 #ifdef CLUSTER_THREAD_STEALING
   } else {