Virtual memory management for transaction processing systems

Jeffrey L. Eppinger · 1989

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.

Read the paper · More papers on PaperTik