分布式系统概述 Distributed Systems Introduction
I note down the critical concept of distributed system.
There may be mistakes, feel free to discuss with me here issue.
Why Distributed Systems?
Dsitributed System has been used broadly in real life. It is necessary for the current internet world, such as Google, Meta, Tiktok, etc.
The Challenges/Capabilities of Distributed Systems
- Failure Tolerance
- Managing Distributed State
- Scalability
- Architecture and Design
Thought Experiement: Two General's Problem
In the experiment, two generals are only able to communicate with one another by sending a messenger through enemy territory. The experiment asks how they might reach an agreement on the time to launch an attack while knowing that any messenger they send could be captured.
From this thought experiement, we know that It is impossible to reach a final agreement with unstable communication channel.
But we can solve it in engineering ways by bypassing some assumptions and allowing trade-offs. There are lots of solutions published, for example, the Consensus Algorithm.
A quick tour of Distributed System [Video]
『Made in Heaven』分布式系统要开始加速了,43秒带你速通 ! 分布式系统概念 第01期
CAP Theorem
RPC Semantics
Logical Lock
Distributed State
Consistency
Consensus Protocol
Byzantine Fault Tolerance
Distributed Transaction
Distributed File System
Distributed Storage
Distributed Computing
Distributed Machine Learning
Reference
- Two General's Problem, Wiki
- At most once, at least once, exactly once
- Time, Clock, and the Ordering of Events in a Distributed System
- Impossibility of Distributed Consensus with One Faulty Process
- Paxos Made Simple
- Paxos Made Moderately Complex
- In Search of an Understandable Consensus Algorithm
- Practical byzantine fault tolerance
- Spanner: Google’s Globally-Distributed Database
- etc