Specifying and using a partitionable group communication service

  • Authors:
  • Alan Fekete;Nancy Lynch;Alex Shvartsman

  • Affiliations:
  • Dept. of Computer Science, University of Sydney, Sydney, Australia;Laboratory for Computer Science, Massachusetts Institute of Technology, Cambridge, MA;Dept. Computer Science and Engineering, University of Connecticut, Storrs, CT and Laboratory for Computer Science, Massachusetts Institute of Technology, Cambridge, MA

  • Venue:
  • ACM Transactions on Computer Systems (TOCS)
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

Group communication services are becoming accepted as effective building blocks for the construction of fault-tolerant distributed applications. Many specifications for group communication services have been proposed. However, there is still no agreement about what these specifications should say, especially in cases where the services are partitionable, i.e., where communication failures may lead to simultaneous creation of groups with disjoint memberships, such that each group is unware of the existence of any other group. In this paper, we present a new, succinct specification for a view-oriented partitionable group communication service. The service associates each message with a particular view of the group membership. All send and receive events for a message occur within the associated view. The service provides a total order on the messages within each view, and each processor receives a prefix of this order. Our specification separates safety requirements from performance and fault-tolerance requirements. The safety requirements are expressed by an abstract, global state machine. To present the performance and fault-tolerance requirements, we include failure-status input actions in the specification; we then give properties saying that consensus on the view and timely message delivery are guaranteed in an execution provided that the execution stabilizes to a situation in which the failure-status stops changing and corresponds to consistently partioned system. Because consensus is not required in every execution, the specification is not subject to the existing impossibility results for partionable systems. Our specification has a simple implementation, based on the membership algorithm of Christian and Schmuck. We show the utility of the specification by constructing an ordered-broadcast application, using an algorithm (based on algorithms of Amir, Dolev, Keidar, and others) that reconciles information derived from different instantiations of the group. The application manages the view-change activity to build a shared sequence of messages, i.e., the per-view total orders of the group service are combined to give a universal total order. We prove the correctness and analyze the performance and fault-tolerance of the resulting application.