« The Real News is Not that Facebook Serves Up 1 Trillion Pages a Month… | Main | HighScalability is old news. Step your scaling game way up... (NSFW cartoon) »

5 Scalability Poisons and 3 Cloud Scalability Antidotes

Sean Hull with two helpful posts:

5 Things That are Toxic to Scalability:

  1. Object Relational Mappers. Create complex queries that hard to optimize and tweak.
  2. Synchronous, Serial, Coupled or Locking Processes. Locks are like stop signs, traffic circles keep the traffic flowing. Row level locking is better than table level locking. Use async replication. Use eventual consistency for clusters.
  3. One Copy of Your Database. A single database server is a choke point. Create parallel databases and let a driver select between them.
  4. Having No Metrics. Visualize what's happening to your system using one of the many monitoring packages.
  5. Lack of Feature Flags. Be able to turn off features via a flag so when a spike hits features can be turned off to reduce load.

3 Ways to Boost Cloud Scalability:

  1. Use Auto-scaling. Spin-up new instances when a threshold is passed and back down again when traffic drops.
  2. Horizontally Scale the Database Tier. MySQL in a master-master active passive cluster configuration. As load grows roll in read-only slaves. As an alternative use Amazon's RDS. Scale up to a larger EC2 instance is the load on a single master is a problem.
  3. Use Striped EBS Volumes. For better EBS performance use Linux's software raid technology. EBS already has redundancy built in so you can stripe across a number of EBS volumes. 4 are recommended.

 This is just a brief summary. Please read the original articles for the full details.

Reader Comments (2)

Thank you thank you thank you for making object relational mappers #1 on this list!!!! Seriously just made my day :)

September 22, 2011 | Unregistered CommenterDevlin Dunsmore

I don't think that using striped EBS volumes will give you great performance anymore.

I know that a year or more ago you could stripe EBS clusters in software raids to get linear performance gains, but it looks like this is no longer the case (as of 5-6 weeks ago when I tested).

I'm guessing that amazon is already doing this behind the scenes. When you reserve an EBS volume it is storing the data across a wide array of underlying physical devices already so using multiple EBS volumes doesn't seem to give an actual performance gain.

If anyone has tested this recently I'd be curious to see the results (with benchmarks)

October 10, 2011 | Unregistered CommenterEvan Reiser

PostPost a New Comment

Enter your information below to add a new comment.
Author Email (optional):
Author URL (optional):
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>