The Process Group Approach to Reliable Distributed Computing

Kenneth P. Birman, CACM, 36(12): 37-53, Dec 1993

 

Notes by Indranil Gupta, March 13, 1999.


Goal of the article: Review 10 years of research on the Isis System - the motivation, the approach(es) taken, and experiences with real-life applications.


The Motivation: Development of reliable distributed software can be simplified using process groups and group programming tools.

The need for Process Group Services

ex. brokerage and trading systems: reliability in publishing and subscribing to messages => replicating the data => process groups.

Impossibility Results (not in this paper)

Types of Process Groups

  1. Anonymous groups: should provide facilities for sending messages to a group address; all or none, exactly once delivery of messages; message delivery order; history (of messages, events) consistently reflecting in current state (across all processes in group).
  2. Explicit groups: Members cooperate directly; employ algorithms that use lists of members, relative rankings in list etc. Additional needs: membership change needs to be published to group. Membership seen by all group members needs to be consistent.

Problems to be tackled

  1. Weak support for reliable communication (ex. if channels break)
  2. Group address expansion
  3. Delivery ordering for concurrent messages
  4. Delivery ordering for related messages
  5. Synchronization
  6. Failure atomicity: (Failure model: fail-stop model - no byzantine failures)

Isis' solutions to the above problems


Questions/Topics for discussion


Further Readings

  1. On the impossibility of Group Membership, Tushar Chandra, Vassos Hadzilacos, Sam Toueg, Bernadette Charron-Bost, ncstrl.cornell/TR95-1548.
  2. Design Alternatives for Process Group Membership and Multicast, Kenneth P. Birman, Robert Cooper, Barry Gleeson, ncstrl.cornell/TR91-1257.

Here are the scribed notes I wrote while reading this paper.