Compensation-aware data types in RDBMS

  • Authors:
  • Aravind Yalamanchi;Dieter Gawlick

  • Affiliations:
  • Oracle USA, Nashua, NH, USA;Oracle USA, Redwood City, CA, USA

  • Venue:
  • Proceedings of the 2009 ACM SIGMOD International Conference on Management of data
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

In a traditional database system, the transaction management protocols and mechanisms are constrained by the fundamental properties of atomicity, consistency, isolation, and durability (ACID). A transaction management system with strict ACID properties typically employs read and write locks, held for the duration of the transaction, to protect its uncommitted data from being seen and modified by some other transaction. While this approach is effective for applications involving short execution times and relatively small number of concurrent operations, it is too restrictive for applications that involve reactive, long-lived, and complex transactions. The common denominator of such applications is the need for transactions to read and possibly modify uncommitted data values [1] and for the database system to still retain the ability to abort a transaction and the ability to recover from failures. This paper proposes a Business Transaction framework that allows long lasting, discontinuous, and resumable transactions to perform shared updates to common data by holding semantic locks on the modified rows. Under this framework, basic SQL data types are made compensation-aware by associating domain-specific shared update semantics with them. These semantics ensure that each data modification operation is compatible with other uncommitted activity on the same data and that the operation can be undone, if needed, without resorting to cascading aborts. This paper describes the key concepts and presents our approach for supporting shared updates in Oracle RDBMS.