210 likes | 386 Views
Lecture #12 Distributed Algorithms (I). CS492 Special Topics in Computer Science: Distributed Algorithms and Systems. Admin Stuff. Quiz #5 return Cloud computing article Lynch’s book chapters. The Byzantine Generals Problem.
E N D
Lecture #12Distributed Algorithms (I) CS492 Special Topics in Computer Science: Distributed Algorithms and Systems
Admin Stuff Quiz #5 return Cloud computing article Lynch’s book chapters
The Byzantine Generals Problem • An agreement problem between the Byzantine generals on whether to attack a city or not • Messengers are not lost, but … • There may be traitors among them • To find an algorithm to ensure that the loyal generals will reach agreement • Traitors can trick some to attack and other not to • They can force an attack when no general wants • They can confuse some that the generals cannot decide
Answer: There is no solution with fewer than 3m+1 generals can cope with m traitors
Reference “The Byzantine Generals Problem” Leslie Lamport, Robert Shostak, Marshall Pease ACM Trans. on Programming Languages and Systems, Vol. 4, No. 3, July 1982, pp 382-401
Distributed Algorithms • A large variety of concurrent algorithms • Originally refer to algorithms that were designed to run on many processors “distributed” over a large geographical area • Nowadays those on LAN or even on shared memory multiprocessors
Attributes of distributed algorithms • IPC • Timing model • Failure model • Problems the algorithms solve • Resource allocation, communication, consensus, database concurrency control, deadlock detection, global snapshots, synchronization, etc.
General Style of Work • Problems of significance in practical distributed computing identified • Abstract versions are defined • Algorithms are developed • They are describe precisely and proved to solve the stated problems; their complexity analyzed • Impossibility results and lower bounds proved
Topics to Cover • Synchronous Network Model (Ch. 2-4) • Leader election in a synchronous ring • Breadth-first search • Shortest paths • Min spanning tree • Maximal independent set • Asynchronous System Model (Ch. 8-9) • Asynchronous shared memory model
Synchronous Network Systems • Synchronous Network System as a Graph G = (V, E) where n = |V| M : some fixed alphabet statesi starti msgsi transi
A round = two steps Apply the message-generation function Apply the state-transition function
Difference from a traditional automata Accepting states vs halting states
Failures • Process vs link failures • Byzantine failure • A process can generate its next messages and next state in some arbitrary way, without necessarily following the rules specified by its message-generation and state-transition functions.
Inputs and Outputs Adopt a simple convention to encode the inputs and outputs in the states
Executions • An execution of the system is an infinite sequence C0, M1, N1, C1, M2, N2, C3, M3, N3, … • C: state assignment • M: message assignment (messages sent) • N: message assignment (messages received)
Proof Methods • invariant assertion • A property of the system state that is true in every execution, after every round. • Generally proved by induction on r • simulation • A goal to show A “implements” another asynchronous algorithm B, in the sense of producing the same input/ouput behavior. • Generally proved by induction on r
Complexity Measures time complexity communication complexity
Still, how different from an automata? Add a random function to pick new states at each round
Now our first problem Leader election in a synchronous ring
The Problem • Electing a unique leader • In a ring, exactly one process should output the decision that it is the leader. • Versions • All non-leaders declare non-leader. • The ring can be unidirectional or bidirectional. • The number of nodes can be known or not. • Processes can have identical identifiers or not. • The former = impossibility result for identical processes • Thus, usually the processes are assumed to be identical except for the identifier.