httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Querna <>
Subject Re: Working on some load balancing methods
Date Tue, 11 Jan 2005 16:53:41 GMT
Brian Akins wrote:
> Mladen Turk wrote:
>> Sure, the general idea was to allow different lb methods.
>> I've started to collect the transferred for various
>> protocols to be able to do a traffic balancing.
> So, there will be an API to allow developers to develop load balancers 
> without having to muck with the proxy code?  If so, yes!  If not, it 
> would rule.
> What we did is write our own proxy module because of limitations in the 
> 2.0 one.  Basically it's like this:
> -There is an external programe (started like a piped log program) that 
> does "active" health checking. Every x seconds it checks all the 
> "origin" servers and records their status in shared memory.

This is more or less what mod_backhand does. (it is more passive, 
waiting for a active server to send out a multicast or an ethernet 
broadcast saying that it is alive, along with stats.)

> -In our proxy module, it uses the information in the shared memory to 
> maintain a apr_reslist of connections.  It it gets an error before 
> sending data to the client (one origin server hiccup'ed, for example), 
> it will apr_reslist_invalidate that connection, apr_reslist_acquire 
> another and try again.  It will do this x times.

I like this approach. It makes sense in most situations to try multiple 
reslist connections.

> -only after x "errors" will an error actually be returned to the client.
> -because of this, we could not use mod_proxy_http and use our own http 
> client code.

I don't see why with todays framework it couldn't re-use most of proxy_http.

> Does this sound doable within the 2.1/2.2 proxy lb?  Or do will we have 
> to continue to maintain our own proxy?  This functionality is very 
> important for us.

This sounds like a well designed module for your needs, but I think most 
of the features could be well used in other places.  Could your module 
be made open source, and used as a starting point for us?

-Paul Querna

View raw message