Outline • Distributed Mutual Exclusion – Token-based algorithms • Distributed Deadlock Detection – Review and overview • Agreement Protocols – – – – Introduction Lamport-Shostak-Pease algorithm Dolev et al’s algorithm Applications of agreement protocols 5/29/2016 COP5611 1 Announcements • There will be a quiz next Tuesday – It will be an open book quiz – It covers the things we have covered so far – It will be at the end of the class • You can turn in your homework #2 next Tuesday – However, no submission after that date will be accepted • Please do not run your programs on diablo 5/29/2016 COP5611 2 Distributed Deadlock Detection • In distributed systems, the system state can be represented by a wait-for graph (WFG) – In WFG, nodes are processes and there is a directed edge from node P1 to node P2 if P1 is blocked and is waiting for P2 to release some resource – The system is deadlocked if there is a directed cycle or knot in its WFG – The problem is how to maintain the WFG and detect cycle/knot in the graph 5/29/2016 COP5611 3 Distributed Deadlock Detection – cont. • Centralized detection algorithms • Distributed deadlock algorithms – – – – – Path-pushing Edge-chasing Diffusion computation Global state detection You need to know the basic ideas but not the details about those algorithms 5/29/2016 COP5611 4 Agreement Protocols • In distributed systems, sites are often required to reach mutual agreement – In distributed database systems, data managers must agree on whether to commit or to abort a transaction – Reaching an agreement requires the sites have knowledge about values at other sites • Agreement when the system is free from failures • Agreement when the system is prone to failure 5/29/2016 COP5611 5 The System Model • There are n sites in the distributed system and at most m can be faulty • Each site can communicate with all other sites through message passing • A receiver always knows the identity of the sender of a message • The communication is reliable 5/29/2016 COP5611 6 The System Model – cont. • Synchronous vs. asynchronous computations – In a synchronous computation, processes in the distributed system run in lock step manner – In each step, a process receives messages from other sites sent in the previous step, performs a computation, and sends messages to other processes 5/29/2016 COP5611 7 The System Model – cont. • Processor Failures – Crash fault – Omission fault – Malicious fault • Authenticated vs. non-authenticated messages 5/29/2016 COP5611 8 The System Model – cont. • Performance Analysis – Time to reach an agreement under a given protocol – Message traffic measured by the number of messages exchanged to reach an agreement – Storage overhead 5/29/2016 COP5611 9 Agreement Problems • There are three well known agreement problems – Byzantine agreement problem – Consensus problem – Interactive consistency problem 5/29/2016 COP5611 10 Byzantine Agreement Problem • A chosen process, called source process, broadcasts its initial value to all other processes • A solution should 5/29/2016 COP5611 11 The Consensus Problem • In this problem, every process broadcasts its initial value to all other processes, where the initial values of different processes can be different 5/29/2016 COP5611 12 The Interactive Consistency Problem • In this problem, every process broadcasts its initial value to all other processes, where the initial values of different processes can be different 5/29/2016 COP5611 13 Lamport-Shostak-Pease Algorithm 5/29/2016 COP5611 14 Lamport-Shostak-Pease Algorithm – cont. 5/29/2016 COP5611 15 Lamport-Shostak-Pease Algorithm – cont. • Performance analysis – Time – Message traffic – Storage overhead 5/29/2016 COP5611 16 Fault-Tolerant Clock Synchronization • The interactive convergence algorithm 5/29/2016 COP5611 17 Fault-Tolerant Clock Synchronization – cont. • The interactive consistency algorithm 5/29/2016 COP5611 18