Distributed Computing
Fundamentals, Simulations, and Advanced Topics
Second Edition
Hagit Attiya and Jennifer Welch
Published by John Wiley and Sons, Inc.
ISBN 0-471-45324-2

        Publisher's page for the book (with table of contents)

        A review from DS Online

        Amazon's page for the book

        Errata for the second edition

        Main changes from the first edition

        Material for instructors

        Information about the first edition (including errata and courses using the book)


This book aims to provide a coherent view of the theory of distributed computing, highlighting common themes and basic techniques. It introduces the reader to the fundamental issues underlying the design of distributed systems---communication, coordination, synchronization and uncertainty---and to the fundamental algorithmic ideas and lower bound techniques.

This book covers the main elements of the theory of distributed computing, in a unifying approach which emphasizes the similarities between different models, when possible, or explains inherent discrepancies, when they exist. The book presents up-to-date results in a precise, and detailed, yet accessible manner. The emphasis is on fundamental ideas, not optimizations. More difficult results are typically presented as a series of increasingly complex solutions. The book highlights techniques and results that are applicable in several places throughout the text. This approach exposes the inherent similarities in solutions to seemingly diverse problems.

The major models of distributed computing are covered, varying by the mode of communication (message passing and shared memory), by the synchrony assumptions (synchronous, asynchronous and clocked), and by the failure type (crash and Byzantine). The relationships between the various models are demonstrated by simulations showing that algorithms designed for one model can be run in another model. The book covers a variety of problem domains within the models, including: leader election, mutual exclusion, consensus and clock synchronization. It presents several recent developments, including fast mutual exclusion algorithms, distributed shared memory, the wait-free hierarchy, and sparse network covers.

The text contains many accompanying figures and examples. Each chapter ends with a set of exercises and notes that discuss practical applications in existing systems, as well as a bibliographic history of the ideas.



Additional material (exercise solutions and lecture notes for a sample course) is available for instructors only; send mail to Hagit Attiya.