To support failure atomicity and permanence, transaction processing systems store data in recoverable storage. Recoverable storage is commonly implemented using a combination of volatile, non-volatile, and stable storage. Data are maintained in non-volatile storage over the long term. While data are being processed, they are cached in volatile, primary memory. Stable storage is used for a log that permits operations to be undone or redone.
Transaction processing systems typically implement recoverable storage themselves, using virtual memory or specially mapped physical memory for volatile buffer space. However, many advantages are obtained if the operating system provides recoverable virtual memory: data are mapped into virtual memory and thereby accessed more conveniently; the operating system's fast address translation and paging components provide increased performance; the amount of primary memory allocated to buffering data adapts to system load allowing double paging to be eliminated. Recoverable virtual memory does not preclude the use of other transaction processing techniques.
In this dissertation, I show that virtual memory support can be provided for transaction processing systems. I review some novel hardware and special purpose implementations of recoverable virtual memory. I then describe in depth a system for which I have implemented recoverable virtual memory: the Camelot Transaction Processing Facility. The Camelot implementaion utilizes a general software approach that does not use any special purpose hardware (other than standard virtual memory hardware). The implementation is portable: it runs on IBM RTs, Suns, and Vaxes, including shared memory multiprocessor Vaxes. The approach allows the use of a variety of logging and locking techniques. Other specialized implementations of recoverable virtual memory exist, but they impose severe restrictions on users. This implementation demonstrates the feasibility of recoverable virtual memory for general purpose transaction processing systems.
Cited By
- Satyanarayanan M, Mashburn H, Kumar P, Steere D and Kistler J Lightweight recoverable virtual memory Proceedings of the fourteenth ACM symposium on Operating systems principles, (146-160)
- Satyanarayanan M, Mashburn H, Kumar P, Steere D and Kistler J (2019). Lightweight recoverable virtual memory, ACM SIGOPS Operating Systems Review, 27:5, (146-160), Online publication date: 1-Dec-1993.
- Chase J, Levy H, Lazowska E and Baker-Harvey M (2019). Lightweight shared objects in a 64-bit operating system, ACM SIGPLAN Notices, 27:10, (397-413), Online publication date: 31-Oct-1992.
- Chase J, Levy H, Lazowska E and Baker-Harvey M Lightweight shared objects in a 64-bit operating system Conference proceedings on Object-oriented programming systems, languages, and applications, (397-413)
- Appel A and Li K Virtual memory primitives for user programs Proceedings of the fourth international conference on Architectural support for programming languages and operating systems, (96-107)
- Anderson T, Levy H, Bershad B and Lazowska E The interaction of architecture and operating system design Proceedings of the fourth international conference on Architectural support for programming languages and operating systems, (108-120)
- Appel A and Li K (1991). Virtual memory primitives for user programs, ACM SIGPLAN Notices, 26:4, (96-107), Online publication date: 2-Apr-1991.
- Anderson T, Levy H, Bershad B and Lazowska E (1991). The interaction of architecture and operating system design, ACM SIGPLAN Notices, 26:4, (108-120), Online publication date: 2-Apr-1991.
- Appel A and Li K (1991). Virtual memory primitives for user programs, ACM SIGOPS Operating Systems Review, 25:Special Issue, (96-107), Online publication date: 2-Apr-1991.
- Anderson T, Levy H, Bershad B and Lazowska E (1991). The interaction of architecture and operating system design, ACM SIGOPS Operating Systems Review, 25:Special Issue, (108-120), Online publication date: 2-Apr-1991.
- Appel A and Li K (1991). Virtual memory primitives for user programs, ACM SIGARCH Computer Architecture News, 19:2, (96-107), Online publication date: 2-Apr-1991.
- Anderson T, Levy H, Bershad B and Lazowska E (1991). The interaction of architecture and operating system design, ACM SIGARCH Computer Architecture News, 19:2, (108-120), Online publication date: 2-Apr-1991.
Index Terms
- Virtual memory management for transaction processing systems
Recommendations
Cooperating Write Buffer Cache and Virtual Memory Management for Flash Memory Based Systems
RTAS '11: Proceedings of the 2011 17th IEEE Real-Time and Embedded Technology and Applications SymposiumFlash memory is becoming the storage media of choice for mobile devices and embedded systems. The performance of flash memory is impacted by the asymmetric speed of read and write operations, limited number of erase times and the absence of in-place ...
Cooperating virtual memory and write buffer management for flash-based storage systems
Flash memory is becoming the preferred choice of secondary storage in mobile devices and embedded systems. The performance of Flash memory is dictated by asymmetric speeds of read and write, limited number of erase times, and the absence of in-place ...
Fast In-Memory Transaction Processing Using RDMA and HTM
DrTM is a fast in-memory transaction processing system that exploits advanced hardware features such as remote direct memory access (RDMA) and hardware transactional memory (HTM). To achieve high efficiency, it mostly offloads concurrency control such ...