CS262A Reading Summary 11

ARIES: A Transaction Recovery Method Supporting Fine-Granularity Locking and Partial Rollbacks Using Write-Ahead Logging

C. Mohah et al
Summary by Feng Zhou
9/28/2002

3 key features,
  1. Fine-granularity locking and logical logging supports highly concurrent operation. Logical logging allows some operations to interleave without changing the results. It also allows more concurrency during recovery, where the data involved can be moved to another place or in a different value.
  2. Efficient partial rollback is supported by using compensantion logging to do transaction rollback. The Compensation Log Records are redo-only and are guaranteed to have a bounded length for a specific transaction for all rollback situations. The bounded length property is important because it eases rollback and recovery on memory-constraint systems.
  3. Fuzzy checkpointing is used to both reduce the amount of work that needs to be performed during restart recovery and avoid interrupting normal operations. It is called "fuzzy" because it does not reflect the state of DB at a fixed moment, and no data is required to be propagated when doing checkpointing. With a proper buffer manager that ensures all pages, including "hot-spot" ones, are propagated timely, fuzzy checkpointing can work well.

One major flaw:

Logical logging has the draw back of being not idempotent. This can cause at least two important problems. One is the exact progress of propagation or recovery has to be recorded persistently, which can cause a lot of synchronous writes and, in consequence, bad performance. This means recovery in ARIES will have larger overhead than other systems. The other is that it cannot deal with corrupted data resulting from partial write of a specific unit of data, because it only contains the "delta" of value. The paper seems to focus on the bright side of logical logging without elaborate on these potential problems.