A Formal Approach to Recovery by Compensating Transactions

Compensating transactions are intended to handle situations where it is required to undo either committed or uncommitted transactions that affect other transactions, without resorting to cascading aborts. This stands in sharp contrast to the standard approach to transaction recovery where cascading aborts are avoided by requiring transactions to read only committed data, and where committed transactions are treated as permanent and irreversible. We argue that this standard approach to recovery is not suitable for a wide range of advanced database applications, in particular those applications that incorporate long-duration or nested transactions. We show how compensating transactions can be effectively used to handle these types of applications. We present a model that allows the definition of a variety of types of correct compensation. These types of compensation range from traditional undo, at one extreme, to application-dependent, special-purpose compensating transactions, at the other extreme.

[1]  Henry F. Korth,et al.  Locking Primitives in a Database System , 1983, JACM.

[2]  B. R. Badrinath,et al.  Semantics-Based Concurrency Control: Beyond Commutativity , 1987, ICDE.

[3]  Hamid Pirahesh,et al.  ARIES: a transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging , 1998 .

[4]  B. R. Badrinath,et al.  Semantics-based concurrency control: Beyond commutativity , 1987, 1987 IEEE Third International Conference on Data Engineering.

[5]  Henry F. Korth,et al.  Formal model of correctness without serializabilty , 1988, SIGMOD '88.

[6]  Christos H. Papadimitriou,et al.  The Theory of Database Concurrency Control , 1986 .

[7]  Jim Gray,et al.  The Transaction Concept: Virtues and Limitations (Invited Paper) , 1981, VLDB.

[8]  Andreas Reuter,et al.  Principles of transaction-oriented database recovery , 1983, CSUR.

[9]  Marc H. Graham,et al.  Abstraction in recovery management , 1986, SIGMOD '86.

[10]  Hector Garcia-Molina,et al.  Using semantic knowledge for transaction processing in a distributed database , 1983, TODS.

[11]  M. Tamer Özsu,et al.  Using semantic knowledge of transactions to increase concurrency , 1989, TODS.

[12]  William E. Weihl,et al.  Commutativity-based concurrency control for abstract data types , 1988, [1988] Proceedings of the Twenty-First Annual Hawaii International Conference on System Sciences. Volume II: Software track.

[13]  Michael Stonebraker,et al.  The Design of XPRS , 1988, VLDB.

[14]  Won Kim,et al.  On Long-Duration CAD Transactions , 1989, Inf. Sci..