Checkpoint-based rollback recovery in session programming
To react to unforeseen circumstances or amend abnormal situations in communication-centric systems, programmers are in charge of "undoing" the interactions which led to an undesired state. To assist this task, session-based languages can be endowed with reversibility mechanisms. In this paper we propose a language enriched with programming facilities to commit session interactions, to roll back the computation to a previous commit point, and to abort the session. Rollbacks in our language always bring the system to previous visited states and a rollback cannot bring the system back to a point prior to the last commit. Programmers are relieved from the burden of ensuring that a rollback never restores a checkpoint imposed by a session participant different from the rollback requester. Such undesired situations are prevented at design-time (statically) by relying on a decidable compliance check at the type level, implemented in MAUDE. We show that the language satisfies error-freedom and progress of a session.
Authors
- Francesco Tiezzi (ORCID: https://orcid.org/0000-0003-4740-7521)
- Claudio Antares Mezzina (ORCID: https://orcid.org/0000-0003-1556-2623)
- Nobuko Yoshida (ORCID: https://orcid.org/0000-0002-3925-8557)
Publication Details
- Journal
- Logical Methods in Computer Science
- Published
- 2025-01-10
- DOI
- https://doi.org/10.46298/lmcs-21(1:2)2025
- Citations
- 2
- Primary Topic
- Distributed systems and fault tolerance
- Type
- article
- Field-Weighted Citation Impact
- 2.97
Funders
- Istituto Nazionale di Alta Matematica "Francesco Severi"
- Gruppo Nazionale per il Calcolo Scientifico
- Engineering and Physical Sciences Research Council