Author: jfrederic.clere(a)jboss.com
Date: 2008-06-09 06:11:30 -0400 (Mon, 09 Jun 2008)
New Revision: 1671
Modified:
trunk/mod_cluster/native/mod_proxy_cluster/mod_proxy_cluster.c
Log:
Arrange initialisatin of workers and factor calculations.
Modified: trunk/mod_cluster/native/mod_proxy_cluster/mod_proxy_cluster.c
===================================================================
--- trunk/mod_cluster/native/mod_proxy_cluster/mod_proxy_cluster.c 2008-06-09 08:19:29 UTC
(rev 1670)
+++ trunk/mod_cluster/native/mod_proxy_cluster/mod_proxy_cluster.c 2008-06-09 10:11:30 UTC
(rev 1671)
@@ -132,6 +132,7 @@
(*worker)->s->route[PROXY_WORKER_MAX_ROUTE_SIZ] = '\0';
/* XXX: We need that information from TC */
(*worker)->s->redirect[0] = '\0';
+ (*worker)->s->lbset = 0;
}
if (!reuse) {
@@ -688,8 +689,6 @@
checking_standby = checked_standby = 0;
while (!mycandidate && !checked_standby) {
worker = (proxy_worker *)balancer->workers->elts;
- ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server,
- "proxy: bytraffic balancer (%d)",
balancer->workers->nelts);
for (i = 0; i < balancer->workers->nelts; i++, worker++) {
if (!checking_standby) { /* first time through */
if (worker->s->lbset > max_lbset)
@@ -720,11 +719,16 @@
* and that can map the context.
*/
if (PROXY_WORKER_IS_USABLE(worker) && iscontext_host_ok(r,
balancer, worker)) {
- mytraffic = (worker->s->transferred/worker->s->lbfactor)
+
- (worker->s->read/worker->s->lbfactor);
- if (!mycandidate || mytraffic < curmin) {
+ if (worker->s->lbfactor == 0 && checking_standby) {
mycandidate = worker;
- curmin = mytraffic;
+ break; /* Done */
+ } else {
+ mytraffic =
(worker->s->transferred/worker->s->lbfactor) +
+ (worker->s->read/worker->s->lbfactor);
+ if (!mycandidate || mytraffic < curmin) {
+ mycandidate = worker;
+ curmin = mytraffic;
+ }
}
}
}
Show replies by date