Causal-consistent rollback in a tuple-based language
Rollback is a fundamental technique for ensuring reliability of systems, allowing one, in case of troubles, to recover a past system state. However, the definition of rollback in a concurrent/distributed scenario is quite tricky. We propose an approach based on the notion of causal-consistent revers...
Saved in:
Published in | Journal of logical and algebraic methods in programming Vol. 88; pp. 99 - 120 |
---|---|
Main Authors | , , , |
Format | Journal Article |
Language | English |
Published |
Elsevier
01.04.2017
|
Subjects | |
Online Access | Get full text |
Cover
Loading…
Summary: | Rollback is a fundamental technique for ensuring reliability of systems, allowing one, in case of troubles, to recover a past system state. However, the definition of rollback in a concurrent/distributed scenario is quite tricky. We propose an approach based on the notion of causal-consistent reversibility: any given past action can be undone, provided that all the actions caused by it are undone as well. Given that, we define a rollback as the minimal causal-consistent sequence of backward steps able to undo a given action. We define the semantics of such a rollback operator, and show that it satisfies the above specification. The approach that we present is quite general, but we instantiate it in the case of µKlaim, a formal coordination language based on distributed tuple spaces. We remark that this is the first definition of causal-consistent rollback in a shared-memory setting. We illustrate the use of rollback in µKlaim on a simple, but realistic, application scenario. |
---|---|
ISSN: | 2352-2208 |
DOI: | 10.1016/j.jlamp.2016.09.003 |