[dundee] Rails work

Lee Hughes toxicnaan at yahoo.co.uk
Mon Feb 11 13:53:46 GMT 2008



Gary Short <gary at garyshort.org> wrote: -------- Original Message --------
> From: Lee Hughes 
> Sent: 11 February 2008 13:28
> To: Tayside Linux User Group 
> Subject: Re: [dundee] Rails work
> 
> Can't you just load balance with a farm? I've load balanced a few php apps
> before, with success? or is there something with rails I'm missing?
> does it support database locking for example?

The trouble with Rails is that it uses the MVC pattern (Model, View Controller) where the interaction between the Model (an object that holds entity information and has business behavour) and the View (the web page in this case) is managed by the Controller.

So, you may see a URL like http://www.MyDomain.com/customer/12/edit (which means edit the customer who has id = 12). However, this URL doesn't actually exist and Mod_rewrite is used to route the request to http://www.MyDomain.com/controllers/customer.rb (or similar) passing /customer/12/edit as a parameter so that the code in the controller knows what to do. This is really cool BTW, but makes load balancing a PITA.

This is not a problem confined to Rails of course, all MVC frameworks (Rails, ASP.Net MVC, CakePHP etc) have this problem to overcome. However, Rails further suffers from Ruby's inherent poor performance aswell. Look out for this being fixed in the short to medium term though, very clever people are working on it right now.

-- 
Cheers,
Gary
http://www.garyshort.org


Very Interesting, so, I guess the only open is to balance on source ip address
of the client, and direct same request to the same server , not exactly dynamic
balancing but it will work. However, sharing session state was always a
big problem, store it in memory (of the web server) and you have a problem
distributing that across the cluster, store it in the database and you have
the problem of performance , you have to reread you session variables on every
page load. . pick yer enemy.

Keeping clients on the same server seems to do the job, but it's always
better if a farm of servers can handle any request, ensuring the least loaded
get works to do.

Does rails have any caching , like  mmcache?

that would certainly speed things up, why recompute a web page, when
9 times out of 10, your serving dynamic (which does'nt change that much).

It's certainly interesting stuff, from now on I'm moving from rails to
assembler code. that should improve performance somewhat ;-)








       
---------------------------------
 Sent from Yahoo! &#45; a smarter inbox.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.lug.org.uk/pipermail/dundee/attachments/20080211/6adada55/attachment.html


More information about the dundee mailing list