> -----Original Message-----
> From: Steven van der Vegt [mailto:[email protected]]
> Sent: Wednesday, January 05, 2011 8:34 AM
> To: [email protected]
> Subject: RE: [Pound Mailing List] RE: Website stalls every 60 seconds
>
> Hi Joe!
>
> I like the idea! You also implemented it pretty quick!
> I tested you're implementation(not production) and it seems to work
> quite good.

Good to hear :)

> The only thing I wonder is, why not choose a property which you can
> deterministically extract a backend from. Like the clients ip for
> example. The decimal value, modulo the number of backends. Or a cookie,
> modulo the #backends etc.

I have issues with client ip specifically... Pools of proxy servers with 
different ips, mobile devices that might jump ips frequently, and the case of 
internal clients where the ips might not be significantly different.

The main reason not to do this in my opinion is it won't allow for a proper 
load balance.  If you have 5 backends and yournet.10 and yournet.20 are your 
biggest talkers, they'll both be assigned to the same backend.  Even worse, if 
a backend dies, what do you do?  If your number of backends decreases you will 
remap a lot of your sessions.  If you don't decrease your modulo, you have to 
deterministically figure out a replacement backend, which will likely overload 
one or more of them.

Session type IP in pound works with client ips, but it's still using the 
session database to ensure an equal load balance.

At least going with a cookie like this, Pound is deciding where to place the 
requests.  It can do so based on the same logic as using a session database, it 
can handle dead and disabled servers properly, and the backend assignment will 
be as fair as usual.  (Using dynscale or not, depending on your config)

Joe

--
To unsubscribe send an email with subject unsubscribe to [email protected].
Please contact [email protected] for questions.

Reply via email to