What is distributed system?
1 min readApr 1, 2022
What makes a software distributed one?
- Commodity computers talk to other computers over a network to accomplish a certain task
Distributed System = Partial Failures + Unbounded Latency
Why make software distributed?
- Data too big to fit on one machine
- You want things to be faster using more computers
- Scalable ( support more data and compute)
- Isolate failures to avoid the entire system going down
What are the main features of distributed software?
- Characterized by partial-failures
- Partial failure means some parts of the system are NOT working; some are working.
- It runs on several nodes ( node is just a computer connected by the network)
- Designing around failures: Continues to operate in the presence of failures.
In comparison with High-performance computing, it treats partial failure as a total failure.
Fundamentals of the Distributed system
- What can go wrong when two nodes talk to each other over the network?
- If you send a request to another node and don’t receive a response, it is impossible to know why.
- Byzantine Faults: Responder is lying, refusing to answer
- The sender’s message could be lost, is slow on a congested network, or the destination crashed while processing
- The responding node is slow , its response might be lost during transit, or the responder crashed
References:
- Martin Kleppmann, Lindsey Kuper