Optimistic Concurrency Semantics for Transactions in Coordination Languages

There has been significant recent interest in exploring the role of coordination languages as middleware for distributed systems. These languages provide operations that allow processes to dynamically and atomically access and manipulate collections of shared data. The need to impose discipline on the manner in which these operations occur becomes paramount if we wish to reason about correctness in the presence of increased program complexity. Transactions provide strong serialization guarantees that allow us to reason about programs in terms of higher-level units of abstraction rather than lower-level data structures. In this paper, we explore the role of an optimistic transactional facility for a Linda-like coordination language. We provide a semantics for a transactional coordination calculus and state a soundness result for this semantics. Our use of an optimistic concurrency protocol distinguishes this work from previous efforts such as Javaspaces, and enables scalable, deadlock-free implementations.

[1]  Roberto Gorrieri,et al.  On the Semantics of JavaSpaces , 2000, FMOODS.

[2]  Rocco De Nicola,et al.  A Process Algebra Based on LINDA , 1996, COORDINATION.

[3]  Robin Milner,et al.  Theories for the Global Ubiquitous Computer , 2004, FoSSaCS.

[4]  Computer Staff,et al.  Transaction processing , 1994 .

[5]  J. Gregory Morrisett,et al.  Composing first-class transactions , 1994, TOPL.

[6]  Julian Bradfield CONCUR '96: Concurrency Theory , 1996 .

[7]  Nadia Busi,et al.  On the Serializability of Transactions in JavaSpaces , 2001, Electron. Notes Theor. Comput. Sci..

[8]  Butler W. Lampson,et al.  Atomic Transactions , 1980, Advanced Course: Distributed Systems.

[9]  Roberto Gorrieri,et al.  Temporary Data in Shared Dataspace Coordination Languages , 2001, FoSSaCS.

[10]  Roberto Gorrieri,et al.  Process Calculi for Coordination: From Linda to JavaSpaces , 2000, AMAST.

[11]  Mario Tokoro,et al.  On Asynchronous Communication Semantics , 1991, Object-Based Concurrent Computing.

[12]  Ken Arnold,et al.  JavaSpaces¿ Principles, Patterns, and Practice , 1999 .

[13]  Roberto Bruni,et al.  Orchestrating Transactions in Join Calculus , 2002, CONCUR.

[14]  Tobin J. Lehman,et al.  T Spaces , 1998, IBM Syst. J..

[15]  Nicholas Carriero,et al.  Bauhaus Linda , 1994, ECOOP Workshop.

[16]  Martin Berger,et al.  The Two-Phase Commitment Protocol in an Extended pi-Calculus , 2003, EXPRESS.

[17]  Nadia Busi,et al.  On the serializability of transactions in shared dataspaces with temporary data , 2002, SAC '02.

[18]  Jaco van de Pol,et al.  Formal Specification of JavaSpaces Architecture Using µCRL , 2002, COORDINATION.

[19]  E. B. Moss,et al.  Nested Transactions: An Approach to Reliable Distributed Computing , 1985 .

[20]  Rachid Guerraoui,et al.  An Equational Theory for Transactions , 2003, FSTTCS.

[21]  Roberto Gorrieri,et al.  A Process Algebraic View of Linda Coordination Primitives , 1998, Theor. Comput. Sci..

[22]  David Gelernter,et al.  Generative communication in Linda , 1985, TOPL.

[23]  Chris Hankin,et al.  Coordinatio Languages and Models , 2002, Lecture Notes in Computer Science.

[24]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[25]  Davide Sangiorgi,et al.  On Bisimulations for the Asynchronous pi-Calculus , 1996, Theor. Comput. Sci..

[26]  Panos K. Chrysanthis,et al.  Synthesis of extended transaction models using ACTA , 1994, TODS.

[27]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[28]  Oscar Nierstrasz,et al.  Object-Based Concurrent Computing , 1991, Lecture Notes in Computer Science.

[29]  G. Erard Boudol Asynchrony and the -calculus (note) , 1992 .

[30]  Oscar Nierstrasz,et al.  Object-Based Models and Languages for Concurrent Systems , 1994, Lecture Notes in Computer Science.

[31]  Farhad Arbab,et al.  Coordination Models and Languages , 1998, Adv. Comput..

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