These pages began as some notes and sample programs written for a presentation in Prof. Mark Stamp’s Distributed Systems class. The presentation went over very well, so I decided to post this to my website. I hope you enjoy.
I will discuss the different types of broadcast algorithms and include sample java programs for many of them. The algorithms are taken from chapter 5 of Distributed Systems, 2nd edition, edited by Sape Mullender. The chapter was “Fault-Tolerant Broadcasts and Related Problems”, written by V. Hadzilacos and S. Toueg. In this chapter, the authors discussed the different types of broadcasts and gave pseudo-code algorithms for each, starting with the most basic and gradually building up to stronger and stronger types of broadcasts. They use a layered approach, meaning that each broadcast is built using the more primitive broadcast algorithms.
I adapted these to sample java programs, which you can download here (along with a few extras). I have tried to mark points where I deviated from the authors’ algorithms to the best of my ability, but I very well could have missed some spots. If you note any, please let me know.
These programs were written for a class demonstration; some shortcuts were taken simply because they were easier to do and did not hurt the demo. In other words, if you use these for anything real, you’re nuts.