Abstract
We present a technique, based on the use of first-class control operators, enabling programs to maintain and invoke rollback logs for sequences of reversible effects. Our technique is modular, in that it provides complete separation between some library of effectful operations, and a client, "driver" program which invokes and rolls back sequences of these operations. In particular, the checkpoint mechanism, which is entirely encapsulated within the effect library, logs not only the library's effects, but also the client's control state. Thus, logging and rollback can be almost completely transparent to the client code.
This separation of concerns manifests itself nicely when we must implement software with sophisticated error handling. We illustrate with two examples that exploit the architecture to disentangle some core parsing task from its error management. The parser code is completely separate from the error-correction code, although the two components are deeply intertwined at run time.
Supplemental Material
- E. Biagioni, K. Cline, P. Lee, C. Okasaki, and C. Stone. Safe-for-space threads in Standard ML. Higher Order and Symbolic Computation, 11: 209--225, Sept. 1998. Google Scholar
Digital Library
- M. G. Burke and G. A. Fisher. A practical method for LR and LL syntactic error diagnosis and recovery. ACM Transactions on Programming Languages and Systems, 9 (2): 164--197, Mar. 1987. Google Scholar
Digital Library
- O. Danvy and A. Filinski. Abstracting control. In Proceedings of the 1990 ACM Conference on LISP and Functional Programming (LFP'90), pages 151--160, 1990. Google Scholar
Digital Library
- M. Felleisen. The theory and practice of first-class prompts. In Conference Record of POPL 1988: The Fifteenth ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 180--190, 1988. Google Scholar
Digital Library
- D. Herman. Functional pearl: The great escape, or how to jump the border without getting caught. In Proceedings of the Twelfth ACM SIGPLAN International Conference on Functional Programming (ICFP'07), 2007. Google Scholar
Digital Library
- G. Hutton and E. Meijer. Monadic parsing in Haskell. Journal of Functional Programming, 8 (4): 437--444, July 1998. Google Scholar
Digital Library
- R. Kelsey and J. Rees. The Scheme48 system. http://s48.org.Google Scholar
- G. Kuan. A true higher-order module system. PhD thesis, University of Chicago, 2011. Google Scholar
Digital Library
- B. S. Lerner, M. Flower, D. Grossman, and C. Chambers. Searching for type-error messages. In Proceedings of the 2007 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'07), 2007. Google Scholar
Digital Library
- K. M. Pitman. Ambitious evaluation: a new reading of an old issue. Lisp Pointers, VIII (2), May 1995. Google Scholar
Digital Library
- A. Rossberg, C. Russo, and D. Dreyer. F-ing modules. In Proceedings of the ACM SIGPLAN Workshop on Types in Language Design and Implementation (TLDI'10), 2010. Google Scholar
Digital Library
- O. Shivers, B. Carlstrom, M. Gasbichler, and M. Sperber. The scsh manual, release 0.6.6. http://scsh.net, Mar. 2004.Google Scholar
- D. Sitaram and M. Felleisen. Control delimiters and their hierarchies. Lisp and Symbolic Computation, 3: 67--99, May 1990. Google Scholar
Digital Library
Index Terms
Modular rollback through control logging: a pair of twin functional pearls
Recommendations
Modular rollback through control logging: a pair of twin functional pearls
ICFP '11: Proceedings of the 16th ACM SIGPLAN international conference on Functional programmingWe present a technique, based on the use of first-class control operators, enabling programs to maintain and invoke rollback logs for sequences of reversible effects. Our technique is modular, in that it provides complete separation between some library ...
Optimal checkpointing interval of a communication system with rollback recovery
This paper considers a communication system which consists of many processors and studies the problem for improving its reliability by adopting the recovery techniques of checkpoint and rollback. When either processor failure or communication error has ...
Orphan-Free Consistent Condition for Log-Based Checkpointing and Rollback Recovery Scheme
The fundamental goal of the log-based fault-tolerant scheme is to bring the system into a consistent global state without any orphan inconsistence. However, the existing Alvisi's No-Orphans Consistency Condition is only sufficient on condition that the ...







Comments