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

Monday, October 2, 2006 - 4:38pm

David Lomet
Microsoft Research
Date: Monday, October 9th, 2006
Time: 3:00pm-4:00pm
Location:Trailer 932 Rm 101 CTL: Collaborative Technologies Lab


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 has done research and product development in architecture,
programming languages, and distributed systems. He is best known for his
work in database systems. He is one of the inventors of the transaction
concept. His work has focused on access methods, concurrency control, and
recovery. He has published over 80 papers, and holds more than 25 patents.
He has twice been author of SIGMOD “best papers”.

Dr. Lomet has served on many program committees, including SIGMOD, PODS,
VLDB, ICDE, and EDBT. He was FODO’93 program chair, ICDE’2000 program
co-chair, and ICDE’2001 conference co-chair, and is currently VLDB’06 Core
Track PC Chair. He is editor-in-chief of the IEEE Data Engineering Bulletin,
editor of the Journal of Distributed and Parallel Databases, and a past
editor of ACM TODS and the VLDB Journal,. He is a Fellow of the ACM and of
the IEEE, and has received IEEE Golden Core, Outstanding Contribution, and
Meritorious Service Awards.

Host: Dr. Amr El Abbadi