, International Institute of Information Technology, Bangalore
Distributed Systems: An Algorithmic Approach
Chapman & Hall, 2006
Up until a decade ago, few distributed computing tutorials or textbook resources were available. Even though the field was extensively researched and of obvious importance to practitioners and theoreticians, newcomers were obliged to pore over original research papers to learn the subject. Instructors teaching at the advanced undergraduate or beginning graduate levels, when students form their ability to comprehend the research literature directly, were similarly hampered. Happily, the situation has improved considerably in recent years, in large part due to works by Hagit Attiya and Jennifer Welch, 1 Vijay K. Garg, 2 and Shlomi Dolev, 3 among others.
Distributed Systems: An Algorithmic Approach is an important addition to the distributed computing literature. The book offers a broad overview of important distributed computing topics, and, where relevant, a touch of networking topics as well.
The book's first two chapters cover topics, such as what distributed systems are, that instructors might regard as preliminary. Chapters 3 to 6 describe the basics of distributed computing models—for example, message-passing versus shared memory and distributed algorithms' syntax and semantics—and include some discussion of program correctness and the notion of logical clocks in a distributed system. Chapters 7 to 11 cover mutual exclusion at a slightly deeper level than a standard operating systems course, as well as distributed snapshot and global-state aggregation, graph algorithms, and leader elections.
Chapters 12 through 17 are the book's best feature. These chapters deal with fault-tolerance fundamentals early on, but also present it as an important element in the topics discussed—consensus, distributed transactions, multicast, data management, and self-stabilization The chapters present the content that will be of the most interest to readers, especially practitioners who would like to see applications of the concepts presented. The final chapters deal with related topics such as discrete-event simulation, sensor networks, and peer-to-peer networks, mostly inspired by practical concerns. Instructors who cover this material will find it necessary to reference supplemental materials to add depth.
Cite this article: Shrisha Rao, "Distributed Systems: An Algorithmic Approach," IEEE Distributed Systems Online, vol. 9, no. 11, art. no. 0811-oy003.