Formal semantics for expressing optimism: the meaning of HOPE

Optimism is a powerful technique for increasing concurrency. A program can increase concurrency by making an optimistic assumption about its future state, and verifying the assumption in parallel with computations baaed on the optimistic assumption. The use of optimism has been restricted to specialized systems due to the difficulty of writing and understanding optimistic programs. In this paper, we define optimism as any computation that uses rollback. We present a formal semantics for expressing optimism by defining operations for concurrent programs to specify which optimistic computations to roll back, while automating the dependency tracking. We prove that these semantics guarantee some intuitively desirable behaviors. Finally, we describe our programming language implementation based on the semantics.

[1]  Robert E. Strom,et al.  Optimistic recovery in distributed systems , 1985, TOCS.

[2]  Brian Randell System structure for software fault tolerance , 1975 .

[3]  Willy Zwaenepoel,et al.  Optimistic computation , 1990 .

[4]  David R. Jefferson,et al.  Virtual time , 1985, ICPP.

[5]  Jon Doyle,et al.  A Truth Maintenance System , 1979, Artif. Intell..

[6]  Arthur P. Goldberg Transparent Recovery of Mach Applications , 1990, USENIX MACH Symposium.

[7]  Nicholas Carriero,et al.  Linda in context , 1989, CACM.

[8]  Crispin Cowan,et al.  Optimistic Language Constructs , 1995 .

[9]  David B. Johnson,et al.  Recovery in Distributed Systems Using Optimistic Message Logging and Checkpointing , 1988, J. Algorithms.

[10]  Michael Anthony Bauer,et al.  Increasing concurrency through optimism: a reason for HOPE , 1994, CSC '94.

[11]  Crispin Cowan Optimistic replication in HOPE , 1992, CASCON.

[12]  Crispin Cowan,et al.  Optimistic Programming in PVM , 1994 .

[13]  Thomas Guenter Immanual Strothotte Temporal constructs for an algorithmic language , 1985 .

[14]  Mike Bauer,et al.  A programming model for optimism , 1995 .

[15]  Michael Anthony Bauer,et al.  Performance benefits of optimistic programming: a measure of HOPE , 1995, Proceedings of the Fourth IEEE International Symposium on High Performance Distributed Computing.

[16]  Ronald J. Watro,et al.  Mathematical foundations for time warp systems , 1993, TOPL.

[17]  Amihai Motro,et al.  The Time Warp mechanism for database concurrency control , 1986, 1986 IEEE Second International Conference on Data Engineering.

[18]  Hanan Lutfiyya,et al.  Language Support for the Application-Oriented Fault Tolerance Paradigm , 1995 .

[19]  Willy Zwaenepoel,et al.  Semantics of optimistic computation , 1990, Proceedings.,10th International Conference on Distributed Computing Systems.

[20]  Peter Triantafillou,et al.  A new paradigm for high availability and efficiency in replicated distributed databases , 1990, Proceedings of the Second IEEE Symposium on Parallel and Distributed Processing 1990.

[21]  Brian Randell,et al.  System structure for software fault tolerance , 1975, IEEE Transactions on Software Engineering.

[22]  David F. Bacon,et al.  Optimistic parallelization of communicating sequential processes , 1991, PPOPP '91.

[23]  Tong-Ying Tony Juang,et al.  Efficient Algorithms for Crash Recovery in Distributed Systems , 1990, FSTTCS.

[24]  Arthur P. Goldberg Optimistic algorithms for distributed transparent process replication , 1991 .

[25]  Jack Dongarra,et al.  PVM: Parallel virtual machine: a users' guide and tutorial for networked parallel computing , 1995 .