  We present a series of novel techniques and algorithms for transaction
commit, logging, recovery, and propagation control. In combination, they
provide a recovery component that maintains the persistent state of the
database (both log and data pages) always in a committed state. Recovery from
system and media failures only requires only REDO operations, which can happen
concurrently with the processing of new transactions. The mechanism supports
fine-granularity locking, partial rollbacks, and snapshot isolation for reader
transactions. Our design does not assume a specific hardware configuration such
as non-volatile RAM or flash---it is designed for traditional disk
environments. Nevertheless, it can exploit modern I/O devices for higher
transaction throughput and reduced recovery time with a high degree of
flexibility.
