From: Ruby Maniac Date: 2007-09-26T03:45:06+09:00 Subject: Re: Ruby Scales just fine ! On Sep 25, 9:55 am, Eric Hodel wrote: > On Sep 25, 2007, at 07:22 , M. Edward (Ed) Borasky wrote: > > > Ruby Maniac wrote: > >> Just buy a bunch of Quad Core Opterons and get over it ! > > >> If you don't think Ruby is scalable just check with the folks at > >> Twitter - they have been successfully using Ruby for some time now - > >> all they had to do was buy a ton of compute gear and life is good ! > > > If Twitter is a for-profit venture, I'd be very surprised if usable > > details about how they plan and manage load, scalability and capacity > > are available without an NDA. This is something we performance > > engineers > > consider "The Family Jewels", although perhaps curious folk in other > > disciplines wonder what the fuss is all about. :) > > These things are less secret than you think. Twitter's solutions to > scaling issues are going to be inappropriate to your scaling issues. > Knowing the details won't help you, knowing the techniques will. See also: http://www.slideshare.net/Georgio_1999/how-to-scale-v2/ and http://www.slideshare.net/Georgio_1999/how-to-scale-your-web-app/ Some of this sort of thing seems a bit over the top in terms of what one might be required to do when scaling web apps based on, shall we say, more efficient languages that run faster. Given the fact that Ruby can be no faster than 1/10th the speed of let's say almost any other language (take your pick) I would surmise one might have to work 10x harder to scale a RoR app than if something more efficient were being used. RoR gives a double whammy for scalability - Ruby is not all that speedy and Rails emits SQL Statements with a lot of "*" chars - combine both and you have scalability issues to be sure. Of course I know some people who say "*" chars in SQL Statements actually makes the SQL run faster but then those who say that also don't like to run benchmarks because benchmarking is seen as being a waste of time and effort. I did run a benchmark that demonstrate the use of "*" in SQL statements makes the SQL Engine run anywhere from 10% slower to 880% slower even when very long lists of column names was not being used as is the case when "*" is used in place of a list of column names. On the other side of the coin, RoR is very easy to code and this one factor alone is generally what people cite as being the real reason RoR was used. Having coded other languages I can tell you all languages are easy to code once that language is understood well enough to make the act of coding enjoyably quick and easy. Keep in mind, I am a died in the wool Ruby lover like the rest of us here however when it comes to scalability issues I have seen Ruby enthusiasts spend a lot of time waiting for their code to run so a bug can be fixed just so they can wait even more time to get to the next instance of a bug fix. This tends to place some weight on the side of the balance where coding with a more performance conscious language may be more profitable in terms of where one spends their time as opposed to simply focusing on the easy-to-code side of the equation.