Scalability Vs. Performance

Posted on 1/3/2010 @ 1:30 AM in #Vanilla .NET by | Feedback | 2958 views

Here is a blog post to once and for all dispel the difference between scalability and performance!

Let's imagine on non computer task. Let's say the your business is to carry goods from point A to point B on the back of a donkey. Business is good, so you seem to be getting more and more requests to carry such goods. Soon enough you realize that you need a donkey that performs better! So you kill your donkey, and you get a body builder donkey! As business grows, his body builder donkeys in enough either! So you kill him, and instead you replace him with a really expensive Sylvester Stallone donkey. Business is getting even crazier, you kill the Sylvester Stallone donkey, and you get an Arnold Schwarzenegger donkey and you pump him with steroids! By now you're donkey is really performant, but also really expensive!

What is important to realize here, is that the same purpose could've been achieved by numerous cheaper donkeys, by scaling your operation amongst the numerous cheaper donkeys. This means, a scalable architecture breaks down its tasks into equivalent activities, that any cheaper donkey can pick. The process of finding a stronger and stronger donkey is aiming for better performance! The equivalent of replacing weaker servers with stronger servers.

The process of distributing, distributable load across multiple servers, is referred to as scaling out your operation.

As you can see, scalability is a very different animal than performance. The end result is perhaps the same you're able to support more business, and you're able to support more users hitting your system. It is how you solve the problem, by providing better performance, or better scalability - is that also differentiates the cost. Numerous less powerful servers are almost always cheaper than a single very high performance supercomputer.

Sound off but keep it civil:

Older comments..

On 1/4/2010 11:32:15 PM Jomit said ..
:-) nice example. But then we need to take a little extra care of making these donkey's work together...

On 1/5/2010 3:44:03 PM Francisco Lopez said ..
Awesome analogy; but, please don't hurt the donkeys. [:-)

On 2/25/2010 8:29:09 AM confused!!! said ..
so what is the weakness or disadvantage of a scalable system?

On 3/9/2010 5:34:35 AM steve said ..
Very nice and humorous post!

Yes scalability and performance are both important. With regards to Sharepoint, performance can be achieved by using caching techniques and externalizing BLOBs. Scalability can be added by use of distributed caching. Ncachepoint is a good piece of software that uses distributed caching for caching SharePoint BLOBs. It also cashes sessions, Views and Lists and optimizes css, javascrips for enhanced performance.

more similar software in the market include storagepoint, Avepoint, Aptimize.

These software can very well serve as numerous donkeys to handle the load while maintaining both performance and scalability.

On 7/11/2010 2:55:35 AM Saravanan said ..
If i go with scalability and buying more donkeys insted stronger one. if the donkeys are not performable then ?

On 7/11/2010 4:52:24 PM Sahil Malik said ..
You have to balance the two.

On 5/4/2012 9:28:16 AM Sam said ..

Donkeys should be capable enough to perform whatever little task they are assigned. Instead of buying a Stronger donkey for all the work. Multiple Less Stronger ( not weaker ) donkeys should be used for small work.