Saturday, May 17, 2008

Definition of Scalability

"The ability of the of a system to continue to operate correctly even when it is scaled to a larger size".

In the context of making applications auto-scale on EC2, the system should continue to operate correctly even when the system scales up or scales down.

In some literature, the words "load balancing" and "scalability" are used interchangeably.

This is also sometimes called "High Scalability"

4 comments:

Eran Chinthaka said...

Definition of scalability for a system is bit more elaborate than this, IMO. This definition should also include system's ability to improve when new resources/hardwares are added to that.
I also agree to what wikipedia says. Wikipedia says "it can refer to the capability of a system to increase total throughput under an increased load when resources (typically hardware) are added."

Load balancing is more close to work distribution than to scaling.
Again wikipedia has a very good explanation. "load balancing is a technique to spread work between two or more computers, network links, CPUs, hard drives, or other resources, in order to get optimal resource utilization, throughput, or response time."

Load balancing and scalability are like two different properties which can have a weaker dependency.

Afkham Azeez said...

The definition of load balancing may differ from that of scalability. My point is that in the literature "Load Balancing" and "Scalability" are used interchangeably very often

Afkham Azeez said...

The purpose of scaling up a system is to maintain the same/similar level of performance when the load increases.

So the emphasis is on correctness. The system should continue to behave correctly, while it scales.

Afkham Azeez said...

I've edited my original post to make to remove some of the ambiguities, taking into consideration the comment from Eran