Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Distributed computing pearls
Taubenfeld G., Morgan&Claypool Publishers, San Rafael, CA, 2018. 123 pp. Type: Book (978-1-681733-48-7)
Date Reviewed: Feb 13 2019

In computer science, the term “synchronization” can relate to coordination between processors or to contention. So I was expecting to find some program examples using the open message passing interface (OpenMPI) or a discussion of distributed database mechanisms for availability and reliability. What I found instead was an introduction to the algorithms that can be used to implement synchronization.

Thus, in chapter 1, readers are introduced to some distributed computing concepts and the role of related algorithms. As an example, it is shown that the largest number in a set of numbers can be found by using an algorithm that splits the set into two subsets, and then computes the largest number in each subset using separate processors and compares the results.

Chapter 2 (“One Loaf of Bread, Please”) describes a file locking mechanism using a scenario where Bob and Alice (of course!) share an apartment and can use a message passing mechanism to decide whether or not the first of them to arrive home should purchase a required loaf of bread. A couple of paragraphs outline a simple procedure and some associated pseudocode is then shown. This procedure has some shortcomings such that both people may proceed to a purchase. Some improved procedures (with pseudocode) are therefore presented, and the chapter ends with some review questions.

Subsequent chapters use a similar format. So in “A Tale of Two Lovers,” we find Bob and Alice trying to synchronize their respective arrival times at a restaurant using another message passing mechanism. This scenario is used to illustrate the importance of reliable communication in managing the transfer of funds between accounts at two different banks.

One chapter describes the Byzantine generals problem: a group of generals need to coordinate their decision about whether a joint plan of attack should proceed. This problem has application in blockchain implementations.

In another chapter, a group of children use a seesaw as a flag to indicate to their leader whether all of them have used it during a current play session. I explored the initial algorithm in some detail. The description suggests that if the leader visits once after every child has used the seesaw, he will be able to get immediate confirmation; the use of a single shared flag means that he may actually need to make a number of visits. The principles in this example are applicable in barrier synchronization procedures.

Finally, in “Getting the Service You Deserve” we find Alice, Bob, and Carol arriving at a bank where there are two tellers. They are unable to see each other and use notes on a common message board so as to ascertain which queue they should join. The solution must be such that the shared resources (the tellers) are never left idle; there is no guarantee that a particular customer will ever get served. The algorithm used is applicable where several computers (any of which may fail) are trying to access common resources such as printers.

In reading this book, you will need to take careful note of what the algorithms promise rather than assume that, for instance, a consensus algorithm will produce the answer selected by a majority of participants. And you may find a couple of instances where the pseudocode does not quite match its associated algorithm description.

The book will not teach you how to include OpenMPI code in your Fortran programs or lock databases during updates, but it will illustrate the principles involved. I found it fascinating.

Reviewer:  G. K. Jenkins Review #: CR146431 (1905-0150)
Bookmark and Share
  Reviewer Selected
Featured Reviewer
 
 
Distributed Systems (C.2.4 )
 
 
Distributed Applications (C.2.4 ... )
 
 
Distributed Databases (C.2.4 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Distributed Systems": Date
The evolution of a distributed processing network
Franz L., Sen A., Rakes T. Information and Management 7(5): 263-272, 1984. Type: Article
Jul 1 1985
A geographically distributed multi-microprocessor system
Angioletti W., D’Hondt T., Tiberghien J.  Concurrent languages in distributed systems: hardware supported implementation (, Bristol, UK,871985. Type: Proceedings
Oct 1 1985
A fault tolerant LAN with integrated storage, as part of a distributed computing system
Boogaard H., Bruins T., Vree W., Reijns G.  Concurrent languages in distributed systems: hardware supported implementation (, Bristol, UK,1001985. Type: Proceedings
Aug 1 1985
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy