Scalability is an important element of constructing distributed systems. When researching scalability in distributed systems, the most common definition of scalability that we come across is the capacity of the system to cope with the increased workload. However, how will this be applicable practically? The developers monitor the world levels of a system monitor that is actively used. This is done to create processes to predict when the system performance becomes unsatisfactory. By doing so, they aim to heighten the capacity of the system before it reaches a point of potential danger.

However, in this scalability approach, the focus is on assessing how a system will behave when the workload changes. The definition is limited in that it does not consider any modifications needed for the system to maintain its performance as the workload increases. Thus, scalability is determined by whether or not a system can remain within an acceptable interval of demand and continue to perform adequately as the workload grows.

Scalability by Way of Extension

There is another scalability definition that gets neglected, which might be important in real-life situations. Scalability is not only about increasing capacity once to handle an increased workload. It also is about having a strategy that is cost-effective for continually extending the system’s capacity. This approach enables scalability to be applied multiple times in a very economical manner, which may be critical in real-world scenarios. When this second scalability definition is being considered, other arguments regarding the system get considered as well.

  • If more processors are added to increase the capacity, which method is suitable to coordinate the work between these added processors?
  • Is it possible for the coordination method to take additional processing cycles?
  • If it can take additional cycles, there won’t be a realisation of the complete benefit of adding capacities. Hence, beyond a specific point, adding processors might not be cost-effective.

Understanding the Scalability of a System

There are two approaches to scalability:

1. The Theoretical Approach

This approach is where comparing the scalability of two unique systems proves to be a lot more beneficial than simply labelling them.

2. The Practical Approach

Though the theoretical scalability approach can be an eye-opener, there is something amiss. According to this approach, no system is infinitely scalable; scalability is an ever-changing process and not a constant state. If the owner of a system has the means to buy more resources in response to the high demand level, then it can be considered scalable up until a certain point.

Beyond that point, however, no cost-effective measures can make up for any response metric issues that may arise. Without money to invest into extra resources when needed, the system would not be able to handle increased demand and therefore cannot be deemed as ‘scalable’.

Thank you for your interest in Bahaa Al Zubaidi blogs. For more stories, please stay tuned to www.bahaaalzubaidi.com