Computer Science Department, Brown University, on the first edition
A Clear Path To Understanding Distributed Computing
The explosive growth of distributed computing systems makes understanding them imperative. To make this notoriously difficult subject accessible, Distributed Computing: Fundamentals, Simulations, and Advanced Topics; Second Edition, provides a solid introduction to the mathematical foundations and theory of distributed computing, highlighting common themes and basic techniques.
The authors present the fundamental issues underlying the design of distributed systemscommunication, coordination, synchronization, and uncertaintyas well as fundamental algorithmic concepts and lower–bound techniques. The book’s unifying approach emphasizes the similarities between different models and explains inherent discrepancies between them. Focusing on ideas rather than optimizations, the book discusses major models of distributed computing, including:
- Message passing and shared memory communication; synchronous and asynchronous timing models, failures, proofs of correctness, and lower bounds
- Leader election, mutual exclusion, and consensus
- Causality of events and clock synchronization
- Simulations between models of distributed computing
- Advanced topics including randomization, the wait–free hierarchy, asynchronous solvability, and failure detectors
With new material on such subjects as fast mutual exclusion and queue locks, and improved coverage of existing material throughout, this Second Edition will serve as a comprehensive textbook for graduate and advanced undergraduate students, and as a key reference for researchers and practicing professionals.
PART I: FUNDAMENTALS.
2. Basic Algorithms in Message–Passing Systems.
3. Leader Election in Rings.
4. Mutual Exclusion in Shared Memory.
5. Fault–Tolerant Consensus.
6. Causality and Time.
PART II: SIMULATIONS.
7. A Formal Model for Simulations.
8. Broadcast and Multicast.
9. Distributed Shared Memory.
10. Fault–Tolerant Simulations of Read/Write Objects.
11. Simulating Synchrony.
12. Improving the Fault Tolerance of Algorithms.
13. Fault–Tolerant Clock Synchronization.
PART III: ADVANCED TOPICS.
15. Wait–Free Simulations of Arbitrary Objects.
16. Problems Solvable in Asynchronous Systems.
17. Solving Consensus in Eventually Stable Systems.