CJoin: Join with communicating transactions

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...

Descripción completa

Guardado en:
Detalles Bibliográficos
Autores principales: Bruni, R., Melgratti, H., Montanari, U.
Formato: JOUR
Materias:
Acceso en línea:http://hdl.handle.net/20.500.12110/paper_09601295_v25_n3_p566_Bruni
Aporte de:
id todo:paper_09601295_v25_n3_p566_Bruni
record_format dspace
spelling todo:paper_09601295_v25_n3_p566_Bruni2023-10-03T15:53:39Z CJoin: Join with communicating transactions Bruni, R. Melgratti, H. Montanari, U. Formal approach Join calculus Language implementations Long-running transactions Mathematical foundations Partial executions Process calculi Programming patterns Calculations 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. © 2014 Cambridge University Press. JOUR info:eu-repo/semantics/openAccess http://creativecommons.org/licenses/by/2.5/ar http://hdl.handle.net/20.500.12110/paper_09601295_v25_n3_p566_Bruni
institution Universidad de Buenos Aires
institution_str I-28
repository_str R-134
collection Biblioteca Digital - Facultad de Ciencias Exactas y Naturales (UBA)
topic Formal approach
Join calculus
Language implementations
Long-running transactions
Mathematical foundations
Partial executions
Process calculi
Programming patterns
Calculations
spellingShingle Formal approach
Join calculus
Language implementations
Long-running transactions
Mathematical foundations
Partial executions
Process calculi
Programming patterns
Calculations
Bruni, R.
Melgratti, H.
Montanari, U.
CJoin: Join with communicating transactions
topic_facet Formal approach
Join calculus
Language implementations
Long-running transactions
Mathematical foundations
Partial executions
Process calculi
Programming patterns
Calculations
description 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. © 2014 Cambridge University Press.
format JOUR
author Bruni, R.
Melgratti, H.
Montanari, U.
author_facet Bruni, R.
Melgratti, H.
Montanari, U.
author_sort Bruni, R.
title CJoin: Join with communicating transactions
title_short CJoin: Join with communicating transactions
title_full CJoin: Join with communicating transactions
title_fullStr CJoin: Join with communicating transactions
title_full_unstemmed CJoin: Join with communicating transactions
title_sort cjoin: join with communicating transactions
url http://hdl.handle.net/20.500.12110/paper_09601295_v25_n3_p566_Bruni
work_keys_str_mv AT brunir cjoinjoinwithcommunicatingtransactions
AT melgrattih cjoinjoinwithcommunicatingtransactions
AT montanariu cjoinjoinwithcommunicatingtransactions
_version_ 1807318901006008320