«« Next » « Previous
«« Next » « Previous

Link Details

Link 23571 thumbnail
User 230109 avatar

By robertdempsey
via railsforall.org
Published: May 28 2007 / 08:39

Rails For All posted a case study today on CourseAdvisor, an online directory of post-secondary schools and education programs, written in Ruby on Rails, that currently serves 1.5 million users per month. Read the case study at Rails For All.
  • 19
  • 4
  • 1862
  • 954

Comments

Add your comment
User 107114 avatar

daniel replied ago:

0 votes Vote down Vote up Reply

Um, the link doesn't work... Considering the message is the default provided with rails, it would be my instinct to say that in this particular case, Rails is *not* scaling very well. :-)

User 111696 avatar

bloid replied ago:

2 votes Vote down Vote up Reply

Fixed it :-) The URL was entered as a combination of the story URL and the URL that pointed to it...

I went for the actual story as the link was only about 2 sentences long...

Fixer Bloid

;)

User 107114 avatar

daniel replied ago:

0 votes Vote down Vote up Reply

heh :-)

User 175177 avatar

sproket replied ago:

-3 votes Vote down Vote up Reply

It doesn't scale when you have a team larger than 5 developers because of it's weakly typed nature. And it still performs badly.

User 75637 avatar

adobni replied ago:

0 votes Vote down Vote up Reply

From the article:
"How do you handle the growing amount of traffic? Are you adding servers or having to refactor your code?

We serve users custom offerings based on their unique profiles, so it’s not always easy to cache query results at the application layer. Therefore, we spend a lot of time optimizing our database queries to make sure our pages render fast. Our web servers running Rails actually do very little data processing, so we replicate them more for redundancy than for scaling.

We get all our performance bang (and also experience our heaviest system load) at the database layer. One of our current technology goals is to be able to scale to 10x, which is really challenging when the database is the bottleneck. So we’re in the process of breaking up our back-end into services that are responsible for different high-level functions. These services are fully vertical Rails apps backed by their own databases, communicating with each other over XMLRPC. That’s going to allow us to spread our database load around a bit, and will also break our app up unto smaller, easier to understand pieces, each responsible for a single function.

One major theme we live by is that if you can’t serve a single page to a single user using a single server in under a second, you won’t be able to do it with two servers, either; all you’ll have is twice as many slow pages. So while we are adding servers to handle additional load, we’re also adapting our software architecture to make the best use of those servers."

User 230109 avatar

robertdempsey replied ago:

0 votes Vote down Vote up Reply

Thanks for the fix bloid - I couldn't figure out how to do it. I got it now though. Much appreciated.

Add your comment


Html tags not supported. Reply is editable for 5 minutes. Use [code lang="java|ruby|sql|css|xml"][/code] to post code snippets.