6.046 distributed algorithms
One purpose of this blog is to explain distributed algorithms in plain words :) as I find the lecture slides are somewhat mathematical to myself.
Terms¶
- Distributed algorithms are algorithms that run on networked processors or on multiprocessors that share memory.
- Two common models are covered in this lecture, asyn/sync distributed computing models
- Config: Distributed networks are represented by an undirected connected graph G = (V, E). A node represents vertex/process. An edge represents communication channel. Assume no failures.
- A clique network: all vertices are directly connected to all others.
Synchronous¶
Leader election¶
A leader acts as the coordinator of servers. First try to use algorithms composed of deterministic, indistinguishable processes to choose a leader. The professor give a theorem which proves it will never work. Then we move to algorithms composed of randomness and distinguishable processes (UID, unique identifiers) to break symmetry.
-
(symmetry -> asymmetry): deterministic => randomness, indistinguishable processes => UIDs
Maximal independent set¶
Breadth-first spanning tree¶
shortest paths trees¶
Asynchronous¶
abstract properties of executions ?