University of Minnesota
University Relations
myU OneStop

Go to unit's home.

Home | Seminars and Symposia | Past seminars/symposia: Monday, May 1, 2006

DTC Seminar Series

Immortal DB: Its Description and Its Use to Deal with Bad User Transactions


David Lomet

Monday, May 1, 2006
2:00 pm

402 Walter Library

TRANSACTION TIME DATABASES retain and provide access to prior states of a database. An update "inserts" a new record while preserving the old version. Immortal DB builds transaction time database support into a database engine, not in middleware. It supports "as of" queries returning records current at the specified time. It also supports snapshot isolation concurrency control. Versions are stamped with the "clock times" of their updating transactions. The timestamp order agrees with transaction serialization order. Lazy timestamping propagates timestamps to transaction updates after commit. Versions are kept in an integrated storage structure, with historical versions initially stored with current data. Time-splits of pages permit large histories to be maintained, and enable time based indexing, which is essential for high performance historical queries. Experiments show that Immortal DB introduces little overhead for accessing recent database states while providing access to past states. We exploit Immortal DB versions to recover from "bad" user transactions, e.g. a teller posted a deposit to the wrong account. Current "point in time" recovery techniques result in long outages and the de-commit of many transactions. Immortal DB has a new approach in which only data tainted by a "bad" 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.


David Lomet manages the Database Group at Microsoft Research, part of the Microsoft Corp. His research is in the area of databases, and particularly in the technology of database kernels. This includes concurrency control, recovery, and access methods. His present interests is in extending the robustness properties of databases (concurrency control and recovery) to the application domain.