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 {