Optimistic Concurrency Semantics for Transactions in Coordination Languages Suresh Jagannathan and Jan Vitek Department of Computer Sciences Purdue University West Lafayette, IN 47906 {suresh,jv}@cs.purdue.edu Abstract. 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 oc- cur 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 struc- tures. 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 distin- guishes this work from previous efforts such as Javaspaces, and enables scalable, deadlock-free implementations. 1 Introduction A transaction defines a locus of computation that adheres to well-known safety and failure properties. To ensure these properties hold, the semantics of a trans- actional facility must guarantee that the effects of a transaction are not observ- able until a commit occurs; when a commit does occur, all effects are propagated instantaneously to the enclosing parent transaction; once a transaction commits, the global state records its effects, and forgets the association between the ef- fect and the transaction; and, all data accesses performed by a transaction are performed serially with respect to other concurrently executing transactions. These four traits correspond to isolation, atomicity, durability, and consistency properties respectively in classical transaction models. There have been several attempts which explore the integration of transac- tional semantics within a coordination language framework. Most notably, Java- Spaces [18] and TSpaces [27] combine Linda-like semantics augmented with transactional features into Java. A formal treatment of JavaSpaces, along with