Recovery from “Bad” User Transactions

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.

PDF file

In  SIGMOD Conference

Publisher  Association for Computing Machinery, Inc.
Copyright © 2007 by the Association for Computing Machinery, Inc. Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from Publications Dept, ACM Inc., fax +1 (212) 869-0481, or The definitive version of this paper can be found at ACM’s Digital Library --


> Publications > Recovery from “Bad” User Transactions