Adding input and output to the transactional model

Al Spector, Randy F. Pausch · 1988

Many computing systems provide transactions to facilitate the creation of reliable software. Transactions allow programmers to specify that a sequence of operations are atomic; either they all occur, or none of them occur. Existing transaction processing systems have concentrated on supporting operations that access or update long-lived data objects. External operations, such as user input/output or controlling a real world device, are typically prohibited. This dissertation extends the transactional model to include many types of external operations, especially user interaction. First, I describe the transactional typescript, a fully implemented piece of system software which uses the techniques of tentative output and a recoverable queue of user keystrokes to implement transactional input and output operations. An additional feature of this system is that after a system or hardware failure, when the system is restarted the user's display is completely restored to the time of the failure, including the location and contents of multiple windows on a bit-map display. The second contribution is the creation of a taxonomy of external events, based on their salient properties (deferrability, compensability, testability, idempotence, and safety). The taxonomy places all transactional operations into one of six classes. Two of the classes are problematic, and operations in these classes cannot always be implemented with proper semantics. Based on the taxonomy, I have designed an external operation server for the Camelot transaction processing system under development at Carnegie Mellon. This work describes a transactional command shell, similar to the UNIX$\sp{\rm TM}$ shell, but including primitives to begin and end transactions. The design describes how to implement each of the operation classes from the taxonomy, and also provides mechanisms for handling the large number (tens of thousands) of physical devices that are often configured to use such a system. The work concludes by analyzing the server design in the context of ET1, a standard industry benchmark for transaction processing systems.

Read the paper · More papers on PaperTik