httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jim Jagielski <...@apache.org>
Subject Re: Arranging mod_proxy_balancer in trunk
Date Tue, 13 Apr 2010 20:29:56 GMT

On Apr 8, 2010, at 3:58 AM, jean-frederic clere wrote:

> On 04/07/2010 03:40 PM, "Plüm, Rüdiger, VF-Group" wrote:
>> 
>> 
>>> -----Original Message-----
>>> From: jean-frederic clere [mailto:jfclere@gmail.com] 
>>> Sent: Mittwoch, 7. April 2010 15:32
>>> To: dev@httpd.apache.org
>>> 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?
> 
> Yes :-)
> 

+1... it's an obvious TODO :)
Mime
View raw message