0% completed
Scalability
On This Page
A. Horizontal Scaling
B. Vertical Scaling
Scalability is the ability of a system to handle an increasing workload, either by adding more resources (scaling out) or by upgrading the capacity of existing resources (scaling up). In distributed systems, scalability is essential to ensure that the system can effectively manage the growing demands of users, data, and processing power. Here's an overview of the different aspects of scalability:
A. Horizontal Scaling
Horizontal scaling, also known as scaling out, involves adding more machines or nodes to a system to distribute the workload evenly. This approach allows the system to handle an increased number of requests without overloading individual nodes. Horizontal scaling is particularly useful in distributed systems because it provides a cost-effective way to manage fluctuating workloads and maintain high availability.
B. Vertical Scaling
Vertical scaling, or scaling up, refers to increasing the capacity of individual nodes within a system. This can be achieved by upgrading the hardware, such as adding more CPU, memory, or storage. Vertical scaling can help improve the performance of a system by allowing it to handle more workloads on a single node. However, this approach has limitations, as there is a physical limit to the amount of resources that can be added to a single machine, and it can also lead to single points of failure.
Horizontal vs. Vertical Scaling
With horizontal-scaling it is often easier to scale dynamically by adding more machines into the existing pool; Vertical-scaling is usually limited to the capacity of a single server and scaling beyond that capacity often involves downtime and comes with an upper limit.
Good examples of horizontal scaling are Cassandra and MongoDB as they both provide an easy way to scale horizontally by adding more machines to meet growing needs. Similarly, a good example of vertical scaling is MySQL as it allows for an easy way to scale vertically by switching from smaller to bigger machines. However, this process often involves downtime.
Fayaz S
· 3 years ago
what should be our approach or things to consider or how to start with if we are trying to design a scalable and high performing platform and cloud analytic monitoring solutions
Shrikrishna jagdale
· a year ago
Normally in spring boot application we write validation checks for the request content, e.g headers, request body fields. What if we offload this validation to api gateway and let the application assume that only valid requests will land on the application's controller?
dinko.osrecki
· 11 days ago
What is missing here is diagonal scaling (combined horizontal and vertical scaling of the same workload).
Imagine an application that is processing tasks of variable complexity and load. It can happen that servers are hit with a huge batch of highly complex tasks (while normally it processes steady number of tasks of lower complexity). In this case it makes sense to scale both vertically (more CPU/RAM to have capacity to handle a complex task) and horizontally (many tasks to process).
On This Page
A. Horizontal Scaling
B. Vertical Scaling