Programming Partition-Aware Network Applications

We consider the problem of developing reliable applications to be deployed in partitionable asynchronous distributed systems. What makes this task difficult is guaranteeing the consistency of shared state despite asynchrony, failures and recoveries, including the formation and merging of partitions. While view synchrony within process groups is a powerful paradigm that can significantly simplify reasoning about asynchrony and failures, it is insufficient for coping with recoveries and merging of partitions after repairs. We first give an abstract characterization for shared state management in partitionable asynchronous distributed systems and then show how views can be enriched to convey structural and historical information relevant to the group's activity. The resulting paradigm, called enriched view synchrony, can be implemented efficiently and leads to a simple programming methodology for solving shared state management in the presence of partitions.

[1]  Amr El Abbadi,et al.  Maintaining availability in partitioned replicated databases , 1987, ACM Trans. Database Syst..

[2]  Gianluca Dini,et al.  Replicated File Management in Large-Scale Distributed Systems , 1994, WDAG.

[3]  Sam Toueg,et al.  Unreliable failure detectors for asynchronous systems (preliminary version) , 1991, PODC '91.

[4]  André Schiper,et al.  Uniform reliable multicast in a virtually synchronous environment , 1993, [1993] Proceedings. The 13th International Conference on Distributed Computing Systems.

[5]  Kenneth P. Birman,et al.  Understanding partitions and the 'no partition' assumption , 1993, 1993 4th Workshop on Future Trends of Distributed Computing Systems.

[6]  Rachid Guerraoui,et al.  Software-Based Replication for Fault Tolerance , 1997, Computer.

[7]  Idit Keidar,et al.  Increasing the resilience of atomic commit, at no additional cost , 1995, PODS '95.

[8]  Flaviu Cristian,et al.  An efficient, fault-tolerant protocol for replicated data management , 1985, PODS '85.

[9]  André Schiper,et al.  Virtually-synchronous communication based on a weak failure suspector , 1993, FTCS-23 The Twenty-Third International Symposium on Fault-Tolerant Computing.

[10]  Louise E. Moser,et al.  The Totem single-ring ordering and membership protocol , 1995, TOCS.

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

[12]  Fred B. Schneider,et al.  The primary-backup approach , 1993 .

[13]  André Schiper,et al.  Primary Partition "Virtually-Synchronous Communication" harder than Consensus , 1994, WDAG.

[14]  Sam Toueg,et al.  Unreliable Failure Detectors for Asynchronous Systems , 1991 .

[15]  K. Birman,et al.  Understanding Partitions and the \ No Partition " , 1993 .

[16]  Mahadev Satyanarayanan,et al.  Coda: A Highly Available File System for a Distributed Workstation Environment , 1990, IEEE Trans. Computers.

[17]  Danny Dolev,et al.  The Transis approach to high availability cluster communication , 1996, CACM.

[18]  Robbert van Renesse,et al.  Reliable Distributed Computing with the Isis Toolkit , 1994 .

[19]  Nancy A. Lynch,et al.  Impossibility of distributed consensus with one faulty process , 1983, PODS '83.

[20]  B SchneiderFred Implementing fault-tolerant services using the state machine approach: a tutorial , 1990 .

[21]  Dale Skeen Determining the last process to fail , 1983, PODS '83.

[22]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.

[23]  Gianluca Dini,et al.  Enriched View Synchrony: A Programming Paradigm for Partitionable Asynchronous Distributed Systems , 1997, IEEE Trans. Computers.

[24]  Özalp Babaoglu,et al.  The Inherent Cost of Strong-Partial View-Synchronous Communication , 1995, WDAG.