What does scalability actually mean?

So recently the question of scalability came up on an NI forum post. Stephen Loftus-Mercer (aka AristosQueue) made a very interesting point. He talked about how scaling can mean many different things to many different people. A solution that is scalable on one axis might not be scalable on another.

Scalable is in the eye of the beholder -- it is always relative to application needs. Fabiola's solution is more scalable, meaning that because you only need a single value to store "latest value", you can always send the pair to C just by using the one that just arrived and the latest value of the other one, possibly with a flag that says, "Already sent this, don't reuse." But both solutions might be scalable enough for your application.
Whether or not it is scalable enough is hard to answer. There are different types of scalability.
Memory scaling: If your actors are very fast and have little latency, the queues might not get that big. Or they might blow up a lot.
Performance scaling: If your system has a lot of things going on, those queues might get large and suddenly the timestamp comparison becomes a performance bottleneck.
Implementation scaling: If you hardcode in two queues into your Root, then you have to hardcode in a third. But if you make it an array of queues, then you can freely add more actors.
Scalability is a question only you can answer for your situation.
Stephen’s post on the forums

So my question is:

When you talk about scalability, what exactly do you mean?

6 Comments on “What does scalability actually mean?

  1. To me it means that you can add things without breaking it or rebuilding it all.
    A scalable systems which accepts modifications (in structure or in usage) without having to be redefined is scalable.
    But again, just my personal opinion.

    • Cyril thanks for sharing your opinion! It is a good definition. I guess part of Stephen’s point was what are you adding? At some point, you have to decide in what direction you want your program to be scalable (ie. what things do you want to be able to add). it’s impossible to be able to scale in every dimension, so part of it is defining those key dimensions that you care about in your particular situation. Just saying something is scalable, might mean one thing to one person and something entirely different to someone else.

  2. In ideal world scalability means ability of system to grow or adapt on changing needs irrespective of time, place or environmental conditions.
    But in real world, AQ pointed it well as “Scalable is in the eye of the beholder — it is always relative to application needs.”

Leave a Reply

Your email address will not be published. Required fields are marked *