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 ?
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 ?
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 ;)
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.
There are two basic tasks that any computer system needs to accomplish:
- storage and
- 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.