Distributed AlgorithmsIn Distributed Algorithms, Nancy Lynch provides a blueprint for designing, implementing, and analyzing distributed algorithms. She directs her book at a wide audience, including students, programmers, system designers, and researchers. Distributed Algorithms contains the most significant algorithms and impossibility results in the area, all in a simple automata-theoretic setting. The algorithms are proved correct, and their complexity is analyzed according to precisely defined complexity measures. The problems covered include resource allocation, communication, consensus among distributed processes, data consistency, deadlock detection, leader election, global snapshots, and many others. The material is organized according to the system model—first by the timing model and then by the interprocess communication mechanism. The material on system models is isolated in separate chapters for easy reference. The presentation is completely rigorous, yet is intuitive enough for immediate comprehension. This book familiarizes readers with important problems, algorithms, and impossibility results in the area: readers can then recognize the problems when they arise in practice, apply the algorithms to solve them, and use the impossibility results to determine whether problems are unsolvable. The book also provides readers with the basic mathematical tools for designing new algorithms and proving new impossibility results. In addition, it teaches readers how to reason carefully about distributed algorithms—to model them formally, devise precise specifications for their required behavior, prove their correctness, and evaluate their performance with realistic measures. |
Contents
| 1 | |
| 15 | |
Asynchronous Algorithms | 197 |
Asynchronous Shared Memory Algorithms | 235 |
Asynchronous Network Algorithms | 455 |
Common terms and phrases
a₁ agreement algorithm agreement problem arbitrary Assertion assume asynchronous network atomic object automata breadth-first search broadcast Byzantine agreement Byzantine failure channels Chapter Complexity analysis component Computer consider contradiction crit critical region decide define described diam Dining Philosophers problem distributed algorithms Distributed Computing edges example failure-free fair execution finite guarantees I/O automaton implementation implies impossibility result induction infinitely initial value invocation leader leave-try Lemma lower bound Lynch multiset mutual exclusion problem MWOE Nancy Lynch nodes nonfaulty processes number of messages occurs operation output P₁ partially synchronous perform port Precondition proof of Theorem protocol prove queue reachable read/write shared reliable FIFO reordering resource Section send/receive sequence serialization points shared memory model shared memory system shared variable simulation relation snapshot snapshot algorithm solves spanning tree step stopping failures Suppose task trace property trying region undirected graph upper bound vector well-formedness
