Persistence+undoability=transactions
- 1 January 1992
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- Vol. ii, 832-843 vol.2
- https://doi.org/10.1109/hicss.1992.183335
Abstract
Persistence means objects live potentially forever. Undoability means that any change to a program's store can potentially be undone. In their design and implementation of support for single-threaded nested transactions in Standard ML of New Jersey (SML/NJ), the authors provide persistence and undoability as orthogonal features and combine them in a simple and elegant manner. They provide support for persistence through an SML interface that lets users manipulate a set of persistent roots and provides a save function that causes all data reachable from the persistent roots to be moved into the persistent heap. They provide support for undoability through an SML interface that exports two functions: checkpoint, which checkpoints the current store, and restore, which undoes all changes made to the previously checkpointed store. Finally, they succinctly define a higher-order function transact completely in terms of the interfaces for persistence and undoability.Keywords
This publication has 17 references indexed in Scilit:
- Typing first-class continuations in MLPublished by Association for Computing Machinery (ACM) ,1991
- Demonic memory for process historiesPublished by Association for Computing Machinery (ACM) ,1989
- Simple generational garbage collection and fast allocationSoftware: Practice and Experience, 1989
- Inheritance of synchronization and recovery properties in Avalon/C++Computer, 1988
- Stores and partial continuations as first-class objects in a language and its environmentPublished by Association for Computing Machinery (ACM) ,1988
- Types and persistence in database programming languagesACM Computing Surveys, 1987
- The amber machinePublished by Springer Nature ,1986
- Support for Distributed Transactions in the TABS PrototypeIEEE Transactions on Software Engineering, 1985
- An Approach to Persistent ProgrammingThe Computer Journal, 1983
- Guardians and Actions: Linguistic Support for Robust, Distributed ProgramsACM Transactions on Programming Languages and Systems, 1983