Greg Loriman wrote:
> Hi folks,
> 
> I posted this in railsweenie, but it's not really a rails question, and the 
> post isn;t getting any answers.

Maybe try: http://www.ruby-forum.com/forum/3

> I would love comments/advice on my above ideas, and further insights into 
> horizontal scaling.
> [...]
> Can anyone give me a few pointers? Is squid the thing? Mongrel (I don't 
> really know what mongrel is)? Can apache be made to do this, and if so is it 
> a bad idea? Obviously it needs to be pluggable since I'll be using my own 
> code (C or Pascal) to do the lookups for the redirection.

One approach that works quite well is to use Apache 2.2 with 
mod_proxy_balancer in front of a cluster of Mongrel processes while 
keeping session state in the database. That should scale horizontally 
quite nicely until the database becomes the bottleneck - by then, I 
expect you'd have a pretty respectable amount of volume. I have no idea 
how much traffic it would take to swamp MySQL on a beefed up server with 
super fast disks, but my guess is it's enough to allow you to pay 
someone to cluster MySQL :)

http://mongrel.rubyforge.org/

http://blog.codahale.com/2006/06/19/time-for-a-grown-up-server-rails-mongrel-apache-capistrano-and-you

http://www.simplisticcomplexity.com/2006/8/13/apache-2-2-mod_proxy_balancer-mongrel-on-ubuntu-6-06

I've been down the road of traditional clustering with appservers 
sending messages to each other furiously duplicating state, and also 
with session affinity to avoid some of the duplication, but presently I 
feel the "shared nothing" architecture is best for me. It has some 
successful precedences with high-volume sites, and you basically get it 
for free with Ruby/Rails/Apache/Mongrel.

> Thanks for your words of wisdom,
> 
> Greg
> 
>