> -----Original Message-----
> From: jean-frederic clere [mailto:[email protected]] 
> Sent: Mittwoch, 7. April 2010 15:32
> To: [email protected]
> Subject: Arranging mod_proxy_balancer in trunk
> 
> Hi,
> 
> In mod_proxy_balancer after
> runtime = find_session_route(*balancer, r, &route, &sticky, url);
> 
> There is a logic that belongs to the LB implementation, my 
> idea is to add a
> apr_status_t (*updatelbstatus)(proxy_balancer *balancer, proxy_worker
> *elected, server_rec *s);
> in the proxy_balancer_method (mod_proxy.h) and call the LB 
> implementation.
> 
> Comments?

You are talking about replacing this

        int i, total_factor = 0;
        proxy_worker **workers;
        /* We have a sticky load balancer
         * Update the workers status
         * so that even session routes get
         * into account.
         */
        workers = (proxy_worker **)(*balancer)->workers->elts;
        for (i = 0; i < (*balancer)->workers->nelts; i++) {
            /* Take into calculation only the workers that are
             * not in error state or not disabled.
             *
             * TODO: Abstract the below, since this is dependent
             *       on the LB implementation
             */
            if (PROXY_WORKER_IS_USABLE(*workers)) {
                (*workers)->s->lbstatus += (*workers)->s->lbfactor;
                total_factor += (*workers)->s->lbfactor;
            }
            workers++;
        }
        runtime->s->lbstatus -= total_factor;
        runtime->s->elected++;

        *worker = runtime;


with

 apr_status_t (*updatelbstatus)(proxy_balancer *balancer, proxy_worker
*elected, server_rec *s);

, correct?
IMHO this would make sense.

Regards

Rüdiger
 

Reply via email to