I totally agree with the concept that speed does not really matter because hardware is cheaper than programmers. And I never understood the criticism towards Ruby being slow... If it improves my productivity, who cares?
However, the REAL problem I see here is that apparently the very features that make Rails productive must be thrown away for the application to scale. If that's the case, then that's a huge issue and even a show-stopper if you ask me.
I think the problem lies on how clustering is usually implemented in Rails. I'm not an expert, but my understanding is that Mongrel distributes the load across multiple web servers, right? If that's the case, then the bottleneck becomes the database, and that's the key issue IMHO (and the hardest one to solve).
In Java (more specifically JBoss), clustering is implemented at the application logic level: The app server manages the state of the application and then it caches and replicates the state whenever necessary.
I really don't see how Rails will solve this problem unless with some kind of application-level communication across the servers... And that's a tough one. Suffice to say that the Java community took like 10 years to come up with something effective!
Note: Please don't take me wrong: I'm not trying to start a Rails vs. Java war here! I'm just sharing my experience on how Java solved this issue...
'... I really don't see how Rails will solve this problem unless with some kind of application-level communication across the servers ...'
This is something that appears to popping up again and again in Web2 [0]. Is Twitter utilising 'memcached' & 'MogileFS' [1] in their optimisations trying to reduce the load on MySql?
However, the REAL problem I see here is that apparently the very features that make Rails productive must be thrown away for the application to scale. If that's the case, then that's a huge issue and even a show-stopper if you ask me.
I think the problem lies on how clustering is usually implemented in Rails. I'm not an expert, but my understanding is that Mongrel distributes the load across multiple web servers, right? If that's the case, then the bottleneck becomes the database, and that's the key issue IMHO (and the hardest one to solve).
In Java (more specifically JBoss), clustering is implemented at the application logic level: The app server manages the state of the application and then it caches and replicates the state whenever necessary.
I really don't see how Rails will solve this problem unless with some kind of application-level communication across the servers... And that's a tough one. Suffice to say that the Java community took like 10 years to come up with something effective!
Note: Please don't take me wrong: I'm not trying to start a Rails vs. Java war here! I'm just sharing my experience on how Java solved this issue...