Introduction to the theory of nested transactions [chapter]

Nancy Lynch, Michael Merritt
1986 Lecture Notes in Computer Science  
a variety of questions. 'llais previous work uses behavioral specifications of nested transactions, focusing on what nested transactions do, rather than what they are. By answering the question "What is a nested transaction?", I/O automata provide a powerthl tool for understanding and reasoning about them. Some unification is vitally important to further development in this field. The plcthora and complexity of existing formalizations is a challenge to the most seasoned researcher. More
more » ... ly, it belies the argument that nested transactions provide a clean and intuitive tool for organizing distributed databases and more general distributed applications. It is particularly important to provide an intuitive and precise description of nested transactions themselves, as in typical systems, these are the components which the application programmer must implementl The remainder of this paper is organi~od as fi)llows. The I/O automaton model is described in Section 2. The rest of the paper contains an extended example, which establishes correctness properties for two related Inck-based concurrcnt schedulers. Section 3 contains simple definitions for naming nested transactions and objects, and for specifying the operations (interactions) of these components. Simple syntactic restrictions on the orders of these operations are presented, and then a particular system of 1/O automata is presented, describing the interactions of nested transactions and objects with a serial scheduler. The interface between the serial scheduler and the transactions provides a basis for the specification of correctness conditions for alternative schedulers. These schedulers would presumably be more efficient than the serial scheduler. The strongest correctness condition, "serial correctness," requires that all non-access transactions see serial behavior at their interface with the system. The second condition, "correctness for T0," only requires that this serial interface be maintained at the interface of the system and the external world. These interfaces also provide simple descriptions of the environment in which nested transactions can be assumed to execute. A particular contribution is the clear and concise semantics of ABORT operations which arises naturally from this fotanalization, The section closes with some lemmas describing useful properties of serial systems. Next, a lock-based concurrent system is presented. Section 4 contains a de~ription of a special type of object, called a "resilient object", which is used in the concurrent system. Section 5 describes the remainder of the concurrent system, the "concurrent scheduler." This concurrent scheduler includes "lock manager" modules for all the objects; lock managers coordinate concurrent accesses. Section 6 defines a system which is closely related to the concurrent system, the "weak concurrent system." This system preserves serial correctness for those transactions whose ancestors do not abort (i.e.. those that are not "orphans"). Since the root of the transaction tree, T0, has no ancestor, weak concurrent systems are
doi:10.1007/3-540-17187-8_42 fatcat:puooa6pz5ja2bc527gloks3fyi