Transactions on typed objects

Peter Schwarz · 1984

Transactions simplify the construction of reliable systems by protecting programmers from the effects of concurrency and failures. To date, they have been used primarily in database systems. The limitations of existing strategies for synchronization and recovery constrain the use of transactions in more general environments such as file systems, mail systems, and operating systems. The standard transaction model can be extended by redefining a transaction as a sequence of typed operations on objects that are instances of shared abstract types. This approach allows semantic knowledge about individual types to be used in developing more flexible synchronization and recovery strategies, including ones that sacrifice basic transaction properties such as serializability. The dissertation discusses a method for specifying the synchronization properties of shared abstract types, and an extensible locking technique for their implementation. The dissertation also examines how a shared abstract type's semantics and implementation affect the choice of a recovery technique. Two new log-based algorithms for recovery are also presented. The simpler algorithm is easier to implement, and its resource requirements during recovery are more tightly bounded. The more complex algorithm allows greater concurrency in implementations of shared abstract types. Choosing transactions as a fundamental mechanism for concurrency control and recovery influences the overall structure of a system. The dissertation describes how synchronization and recovery are implemented in TABS, a system being developed at Carnegie-Mellon that provides an object-oriented transaction mechanism on top of an existing operating system kernel. The possibility of systems that incorporate transactions at an even lower level is also discussed.

Read the paper · More papers on PaperTik