Hostname: page-component-89b8bd64d-5bvrz Total loading time: 0 Render date: 2026-05-07T22:53:17.399Z Has data issue: false hasContentIssue false

cJoin: Join with communicating transactions

Published online by Cambridge University Press:  10 November 2014

ROBERTO BRUNI
Affiliation:
Dipartimento di Informatica, Università di Pisa Largo Bruno Pontecorvo 3, I-56127 Pisa, Italy Email: bruni@di.unipi.it; ugo@di.unipi.it
HERNÁN MELGRATTI
Affiliation:
Departamento de Computacién, FCEyN, Universidad de Buenos Aires - CONICET Pabellón I, Ciudad Universitaria, (C1428EGA) Buenos Aires, Argentina Email: hmelgra@dc.uba.ar
UGO MONTANARI
Affiliation:
Dipartimento di Informatica, Università di Pisa Largo Bruno Pontecorvo 3, I-56127 Pisa, Italy Email: bruni@di.unipi.it; ugo@di.unipi.it

Abstract

This paper proposes a formal approach to the design and programming of long running transactions (LRTs). We exploit techniques from process calculi to define cJoin, which is an extension of the Join calculus with few well-disciplined primitives for LRT. Transactions in cJoin are intended to describe the transactional interaction of several partners, under the assumption that any partner executing a transaction may communicate only with other transactional partners. In such case, the transactions run by any party are bound to achieve the same outcome (i.e., all succeed or all fail). Hence, a distinguishing feature of cJoin, called dynamic joinability, is that ongoing transactions can be merged to complete their tasks and when this happens either all succeed or all abort. Additionally, cJoin is based on compensations i.e., partial executions of transactions are recovered by executing user-defined programs instead of providing automatic rollback. The expressiveness and generality of cJoin is demonstrated by many examples addressing common programming patterns. The mathematical foundation is accompanied by a prototype language implementation, which is an extension of the JoCaml compiler.

Information

Type
Special Issue: Objects and Services
Copyright
Copyright © Cambridge University Press 2014 

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

Article purchase

Temporarily unavailable