Checkpoint-based rollback recovery in session programming

📅 2023-12-03
🏛️ arXiv.org
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
To address communication-intensive session programming, this paper proposes a novel session type system supporting explicit commit, rollback, and abort operations. To prevent illegal cross-participant state restoration, it introduces—within the session types framework—the first statically decidable rollback compliance check, ensuring rollbacks affect only locally accessed states and never violate inter-participant boundaries. Building on session type theory, the authors extend the session language and integrate MAUDE for design-time, type-level verification. They formally prove that the system satisfies error-freedom and progress properties. The core contributions are: (i) a safe and controllable rollback semantics grounded in session types; (ii) static enforcement of cross-participant isolation during rollback; and (iii) verifiable session recovery behavior, enabling rigorous reasoning about fault-tolerant distributed protocols.
📝 Abstract
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.
Problem

Research questions and friction points this paper is trying to address.

Concurrency Control
Exception Handling
State Recovery
Innovation

Methods, ideas, or system contributions that make the work stand out.

Checkpointing
Session-Based Programming
MAUDE Integration
🔎 Similar Papers
No similar papers found.