2

Horizontal scaling is distributing the load to multiple physical / virtual machines using a load balancer. Same of distributed systems.

The question is is horizontal scaling same as distributed systems ?

Prateek Pande
  • 495
  • 3
  • 12

3 Answers3

2

Distributed systems are not horizontal scaling.

The distributed system architecture is about having different components on different machines/places, making them communicate through network. This involves specific design, as you can't completely rely on communication (speed, errors, availability). A main concern also is about distributed transactions.

With horizontal scaling, you have the same component instanciated and executed on different places (but often not far, so they share DB or cache). The component manages the whole transaction, without communicating with the other ones.

A common architecture is to "horizontal scale" the different components of a distributed system, to enhance availability of the overall system ;)

Pierre Sevrain
  • 699
  • 4
  • 14
  • 1
    Basically, you are trying to say distributed systems follow the horizontal scaling architecture, but the communication is over network. (Similar to application deployed to multiple availability zones) While, horizontal scaling could be multiple systems sharing load maybe installed in a same data centre. Thus, no over the network communication. Is my understanding correct ? – Prateek Pande Jul 24 '20 at 07:47
  • 2
    No ;) With horizontal scaling, you deploy the same component X time with load balancing in front. With distributed system you may deploy remotely different components and they will have to communicate with each other. – Pierre Sevrain Jul 24 '20 at 07:56
1

Horizontal Scaling is a more general term for increasing some parameter (bandwidth, performance, etc.) using a larger number of nodes. For example, multiple cores in a processor, multiple servers in a data center.

Distributed Systems is a specific application of horizontal scaling: using computer networks for connecting nodes. Network introduces delays, very hard-to-sync clocks, and network partitions.

zaaath
  • 737
  • 9
  • 17
0

There are two basic tasks that any computer system needs to accomplish:

  1. storage and
  2. computation

Distributed programming is the art of solving the same problem that you can solve on a single computer using multiple computers - usually, because the problem no longer fits on a single computer.

http://book.mixu.net/distsys/intro.html is lightweight introduction to distributed systems.

WebServer
  • 1,316
  • 8
  • 12