ABSTRACT
User written transaction code is responsible for the "C" in ACID transactions, i.e., taking the database from one consistent state to the next. However, user transactions can be flawed and lead to inconsistent (or invalid) states. Database systems usually correct invalid data using "point in time" recovery, a costly process that installs a backup and rolls it forward. The result is long outages and the "de-commit" of many valid transactions, which must then be re-submitted, frequently manually. We have implemented in our transaction-time database system a technique in which only data tainted by a flawed transaction and transactions dependent upon its updates are "removed". This process identifies and quarantines tainted data despite the complication of determining transactions dependent on data written by the flawed transaction. A further property of our implementation is that no backup needs to be installed for this because the prior transaction-time states provide an online backup.
- Philip Bohannon, Rajeev Rastogi, S. Seshadri, Abraham Silberschatz, and S. Sudarshan: Using Codewords to Protect Database Data from a Class of Software Errors. ICDE 1999: 276--285 Google ScholarDigital Library
- Philip A. Bernstein, Vassos Hadzilacos, Nathan Goodman: Concurrency Control and Recovery in Database Systems. Addison-Wesley 1987, ISBN 0-201-10715-5 Google ScholarDigital Library
- David Lomet and Betty Salzberg: Access methods for Multiversion Data. SIGMOD Conference, Portland, OR (May 1989) 315--324 Google ScholarDigital Library
- David Lomet and Betty Salzberg: Exploiting a History Database for Backup. VLDB 1993: 380--390 Google ScholarDigital Library
- David Lomet, Roger Barga, Mohamed Mokbel, German Shegalov, Rui Wang, and Yunyue Zhu: Transaction Time Support Inside a Database Engine. ICDE 2006: (to appear). Google ScholarDigital Library
- C. Mohan, Donald J. Haderle, Bruce G. Lindsay, Hamid Pirahesh, and Peter M. Schwarz: ARIES: A Transaction Recovery Method Supporting Fine-Granularity Locking and Partial Rollbacks Using Write-Ahead Logging. ACM Trans. Database Syst. 17 (1): 94--162 (1992) Google ScholarDigital Library
- Oracle: Oracle Database 10g Release 2 High Availability. http://www.oracle.com/technology/deploy/availability/pdf/TWP_HA_10gR2_HA_Overview.pdf, May 2005.Google Scholar
- Michael Stonebraker: The Design of the POSTGRES Storage System. VLDB, 289--300, 1987. Google ScholarDigital Library
- Michael Stonebraker, Lawrence A. Rowe, and M. Hirohama. The Implementation of Postgres. IEEE TKDE 2(1):125--142, 1990. Google ScholarDigital Library
- Abdullah Uz Tansel, James Clifford, Shashi K. Gadia, Sushil Jajodia, Arie Segev, Richard T. Snodgrass: Temporal Databases: Theory, Design, and Implementation Benjamin/Cummings 1993 Google ScholarDigital Library
Index Terms
- Recovery from "bad" user transactions
Recommendations
Safe open-nested transactions through ownership
PPoPP '09Researchers in transactional memory (TM) have proposed open nesting as a methodology for increasing the concurrency of transactional programs. The idea is to ignore ``low-level'' memory operations of an open-nested transaction when detecting conflicts ...
Comments