A Flexible Causal Broadcast Communication Interface for Distributed Applications

Abstract The paper describes a causal broadcast communication interface that allows distributed applications to flexibly and uniformly specify message ordering requirements. The interface, implemented by the communication layer (or kernel), allows event-driven programming whereby application entities specify partial ordering on occurrence of messages, and all entities perceive the flow of logical time by exchanging messages in the specified order. Since entities see the same order on messages, they have the same view of the application state at every tick in logical time. The paper encourages an explicit representation of causal relationships among messages, whereby a message carries ordering constraints in the form of predicates on the delivery of other messages and a message is delivered at destinations after its predicates are satisfied. This provides flexibility in the communication structure of applications, whereby: (1) weak and strong orderings may be specified uniformly and (2) complex ordering relationship can be captured (e.g., nondeterminism in application). In addition, the concurrency inherent in the application can be precisely extracted and exploited by the kernel message delivery protocols. The broadcast interface integrates this style of causal ordering into a “process group” based program execution model that allows application entities to organize themselves as members of a group and exchange messages within the group in the presence of members joining and leaving the group. The paper describes replication mechanisms built using the interface for remote procedure call and distributed shared memory.

[1]  Sriram Sankar,et al.  Exploiting locality in maintaining potential causality , 1991, PODC '91.

[2]  Mustaque Ahamad,et al.  Implementing and programming causal distributed shared memory , 1991, [1991] Proceedings. 11th International Conference on Distributed Computing Systems.

[3]  Kenneth P. Birman,et al.  Exploiting virtual synchrony in distributed systems , 1987, SOSP '87.

[4]  Liuba Shrira,et al.  Lazy replication: exploiting the semantics of distributed services (extended abstract) , 1990, OPSR.

[5]  Richard D. Schlichting,et al.  Preserving and using context information in interprocess communication , 1989, TOCS.

[6]  André Schiper,et al.  The Causal Ordering Abstraction and a Simple Way to Implement it , 1991, Inf. Process. Lett..

[7]  Kenneth P. Birman,et al.  Reliable communication in the presence of failures , 1987, TOCS.

[8]  Colin J. Fidge,et al.  Logical time in distributed computing systems , 1991, Computer.

[9]  Colin J Fidge Dynamic analysis of event orderings in message-passing systems , 1989 .

[10]  Louise E. Moser,et al.  Broadcast Protocols for Distributed Systems , 1990, IEEE Trans. Parallel Distributed Syst..

[11]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[12]  Kun-Lung Wu,et al.  Recoverable Distributed Shared Virtual Memory , 1990, IEEE Trans. Computers.

[13]  S. T. Chanson,et al.  Failure Transparency in Remote Procedure Calls , 1989, IEEE Trans. Computers.

[14]  Hector Garcia-Molina,et al.  Message ordering in a multicast environment , 1989, [1989] Proceedings. The 9th International Conference on Distributed Computing Systems.

[15]  Paul Hudak,et al.  Memory coherence in shared virtual memory systems , 1989, TOCS.

[16]  Gregory R. Andrews,et al.  Concepts and Notations for Concurrent Programming , 1983, CSUR.

[17]  Richard D. Schlichting,et al.  Fail-stop processors: an approach to designing fault-tolerant computing systems , 1983, TOCS.

[18]  Fred B. Schneider,et al.  Implementing fault-tolerant services using the state machine approach: a tutorial , 1990, CSUR.

[19]  André Schiper,et al.  Lightweight causal and atomic group multicast , 1991, TOCS.

[20]  Virgil D. Gligor,et al.  A Fault-Tolerant Protocol for Atomic Broadcast , 1990, IEEE Trans. Parallel Distributed Syst..

[21]  Amr El Abbadi,et al.  Implementing Fault-Tolerant Distributed Objects , 1985, IEEE Transactions on Software Engineering.

[22]  K. Ravindran,et al.  Communication structures and paradigms for distributed conferencing applications , 1992, [1992] Proceedings of the 12th International Conference on Distributed Computing Systems.