Wednesday, 11 September 2019

[System Design] Scaling methodologies

Wikipedia says, Scalability is the property of a system to handle a growing amount of work by adding resources to the system. With increase in customer demand, Servers hit the scale problems. There are 2 standard ways of handling the Scalability.
1. Horizon Scaling: Add more servers/Machines when there is a increase in load.
  • Demands load balancing to balance client requests.
  • Results in distributed systems and possible data inconsistency.
2. Vertical Scaling: Add more resources to the same server.
  • Single server holds all the data and hence there will be no data consistency issues.
  • Will result in better IPC as things are local to single server.
  • Can result in Single Point of failure.
  • Cannot go beyond certain hardware limits.

In practical, it is better to use a combination of both to achieve better results. Perform the Vertical scaling and move to Horizontal scaling after some peek limits.

No comments:

Post a Comment