Open In App

Horizontal and Vertical Scaling In Databases

Improve
Improve
Like Article
Like
Save
Share
Report

Scaling alters the size of a system. In the scaling process, we either compress or expand the system to meet the expected needs. The scaling operation can be achieved by adding resources to meet the smaller expectation in the current system, by adding a new system to the existing one, or both. 

Types of Scaling: 

Scaling can be categorized into 2 types: 

  1. Vertical Scaling: When new resources are added to the existing system to meet the expectation, it is known as vertical scaling. 

    Consider a rack of servers and resources that comprises the existing system. (as shown in the figure). Now when the existing system fails to meet the expected needs, and the expected needs can be met by just adding resources, this is considered vertical scaling. Vertical scaling is based on the idea of adding more power(CPU, RAM) to existing systems, basically adding more resources.
    Vertical scaling is not only easy but also cheaper than Horizontal Scaling. It also requires less time to be fixed. 
     

  2. Horizontal Scaling: When new server racks are added to the existing system to meet the higher expectation, it is known as horizontal scaling. 

Consider a rack of servers and resources that comprises the existing system. (as shown in the figure). Now when the existing system fails to meet the expected needs, and the expected needs cannot be met by just adding resources, we need to add completely new servers. This is considered horizontal scaling. Horizontal scaling is based on the idea of adding more machines to our pool of resources. Horizontal scaling is difficult and also costlier than Vertical Scaling. It also requires more time to be fixed. 

Differences between Horizontal and Vertical Scaling are as follows:

Horizontal Scaling Vertical Scaling
When new server racks are added to the existing system to meet the higher expectation, it is known as horizontal scaling. When new resources are added in the existing system to meet the expectation, it is known as vertical scaling
It expands the size of the existing system horizontally. It expands the size of the existing system vertically.
It is easier to upgrade. It is harder to upgrade and may involve downtime.
It is difficult to implement It is easy to implement
It is costlier, as new server racks comprise a lot of resources It is cheaper as we need to just add new resources
It takes more time to be done It takes less time to be done
High resilience and fault tolerance Single point of failure
Examples of databases that can be easily scaled- Cassandra, MongoDB, Google Cloud Spanner Examples  of databases that can be easily scaled- MySQL, Amazon RDS

Last Updated : 06 Apr, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads