Distributed Systems
Nowadays, it becomes more and more difficult to compute data on one computer as data keep increasing in volume and arriving speed. Even with vertical scalability, the computer’s capacity limit will eventually be reached. Here comes the concept of horizontal scalability where multiple computers get the job done fast and efficiently. A system is needed to use multiple computers to run one job and get the results in one place and still guarantee availability and scalability. The idea is to divide a job into multiple tasks and distribute them to multiple computers for concurrent processing such that software and hardware can be shared between computers.
What is a distributed system ?
A distributed system is a computing environment in which multiple computers on a network work together for computation. In such a system, a job is divided into tasks and assigned to available nodes which coordinate to complete the job. It is usually a cluster of computers with master-slave architecture. The master node is the driver which distributes the tasks to the slave nodes. The slave nodes are responsible in computing assigned tasks and the master node collect and summarize the results. The fact that many computers are involved brings other issues. A good coordination between computers is necessary to ensure availability, scalability and fault-tolerance which are some of the characteristics of the system.
Characteristics of distributed systems
- ● Scalability: system ability to handle an increase workload by easily adding one or more nodes to the network without disrupting the system
- ● Concurrency: ability to run tasks of a job simultaneously by the different nodes – this characteristic is what reduces considerably job runtime and solve ;
- ● Fault-tolerance and replication: fault-tolerance avoids disruption of computation in case of failure of one component and data replication ensures fault-tolerance.
- ● Transparency: the distributed system appears as a single unit to the end user
Few types of distributed systems
- ● Peer to peer networks
- ● Telecommunication network
- ● Parallel processing: computation through multiples threads or processors
- ● Distributed database: databases are over multiple locations or servers
Leave A Comment