httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Theo Schlossnagle <je...@omniti.com>
Subject Re: Working on some load balancing methods
Date Tue, 11 Jan 2005 15:44:14 GMT

On Jan 11, 2005, at 9:44 AM, Jim Jagielski wrote:
> On Jan 11, 2005, at 4:20 AM, Ben Laurie wrote:
>> Justin Erenkrantz wrote:
>>> --On Saturday, January 8, 2005 10:43 PM +0000 Ben Laurie 
>>> <ben@algroup.co.uk> wrote:
>>>> Errr... mod_backhand?
>>> mod_backhand doesn't support Apache 2.x:
>>> <http://www.backhand.org/mod_backhand/FAQ.shtml#question0>
>>
>> Port it?
>>
>
> I think that we can come much further along with extending
> the lb capability in proxy... For more sophisticated and
> demanding environments, an external lb mechanism
> is likely used. So my pers. pref would be to
> see what can be done in proxy before seeing if
> mod_backhand even needs to be ported. I don't think
> that the web server should need to do everything :)

Having mod_backhand use mod_proxy isn't very difficult.  We implemented 
that for a client.  I don't understand the comment about the web server 
doing stuff.  mod_proxy sits inside apache and adheres to the same 
limitations do to it architectural position as mod_backhand.

mod_backhand already allows for users to write their own arbitrary load 
balancing decision functions and run them.  Perhaps looking at it 
wouldn't be so bad as it has been around for a while and understands 
the problems inherent in building a load balancer inside of a web 
server.

One extremely important thing to consider is that Alteons and all their 
appliance competitors support 100k concurrent SMTP sessions at a _bare 
minimum_.  Apache 2 is hard pressed to do that.  So, you need more than 
one front-end load balancer to share the load balancing over.  At this 
point, the issues of decision making compound dramatically as total 
knowledge is lost.  As the 2+ front-end load balancers are all 
accepting client-originated traffic, they don't know the decisions that 
the other peers are making.  This results in hard contention problems 
to solve -- which mod_backhand accounts for.

So, if you go implement something I have some advice.  Don't speculate 
on what you think is cool or what worked for you in your specific 
environment.  Alteon and big/ip and foundry, etc. etc. all have several 
load balancing policies for a _reason_.  They all don't work 
everywhere.  There is a lot of theory and research behind this stuff.  
go read some Sigmetrics issues and make sure you wrap your head around 
the whole problem before you "solve it" -- because you will be 
disappointed with the "it" you wind up with.

// Theo Schlossnagle
// Principal Engineer -- http://www.omniti.com/~jesus/
// OmniTI Computer Consulting, Inc. -- http://www.omniti.com/
// Ecelerity: fastest MTA on Earth


Mime
View raw message