
arXiv: 1602.03594
Reversible distributed programs have the ability to abort unproductive computation paths and backtrack, while unwinding communication that occurred in the aborted paths. While it is natural to assume that reversibility implies full state recovery (as with traditional roll-back recovery protocols), an interesting alternative is to separate backtracking from local state recovery. For example, such a model could be used to create complex transactions out of nested compensable transactions where a programmer-supplied compensation defines the work required to "unwind" a transaction. Reversible distributed computing has received considerable theoretical attention, but little reduction to practice; the few published implementations of languages supporting reversibility depend upon a high degree of central control. The objective of this paper is to demonstrate that a practical reversible distributed language can be efficiently implemented in a fully distributed manner. We discuss such a language, supporting CSP-style synchronous communication, embedded in Scala. While this language provided the motivation for the work described in this paper, our focus is upon the distributed implementation. In particular, we demonstrate that a "high-level" semantic model can be implemented using a simple point-to-point protocol.
In Proceedings PLACES 2015, arXiv:1602.03254
FOS: Computer and information sciences, Computer Science - Programming Languages, Computer Science - Distributed, Parallel, and Cluster Computing, Electronic computers. Computer science, QA1-939, QA75.5-76.95, Distributed, Parallel, and Cluster Computing (cs.DC), Mathematics, Programming Languages (cs.PL)
FOS: Computer and information sciences, Computer Science - Programming Languages, Computer Science - Distributed, Parallel, and Cluster Computing, Electronic computers. Computer science, QA1-939, QA75.5-76.95, Distributed, Parallel, and Cluster Computing (cs.DC), Mathematics, Programming Languages (cs.PL)
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 2 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Average | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Average |
