2 ms·
Almost every analysis I read, including this one, points to Rails as the major bottleneck but then can't say anything concrete to justify it. This article says
by alex_c 18y ago
Almost every analysis I read, including this one, points to Rails as the major bottleneck but then can't say anything concrete to justify it. This article says that Rails is no good for processing intensive tasks and that you should use C. Rails is a framework for serving web pages, it isn't doing any of the processing or message queueing. I'm sure that Rails won't work out of the box with whatever backend you would need for a stable twitter, but I haven't heard anyone address the actual technical issues. Is it just a matter of having to tweak Rails or is there a reason that Rails is the wrong architecture?
I agree, I see a lot of confusion about this. Some just seem to blame it on the language, others on the framework, many can't seem to tell the difference (FTA: "Rails would do itself no harm by conceding that it isn’t a platform that can compete with Java or C when it comes to intensive tasks.")
It doesn't make any kind of sense to blame the language. Within reasonable limits, the speed of the language is only relevant if you're trying to run everything off one box. If you're running more than one server, a slower language just means more servers. I can't think of any exception to this.
What about blaming the framework? I wouldn't expect it to scale out of the box, fair enough. But are there any frameworks out there which can scale perfectly, out of the box, without any a priori knowledge of what the system actually does or needs? If there is a specific crippling flaw in Rails which makes it unable to scale, it should be possible to pinpoint it.
In the meanwhile, very little is said about the architecture and the database. Is there really any problem Twitter needs to solve that is more difficult than those solved by Facebook (friend newsfeeds) or by any chat system (online status updates)?