Classic paper on WAL. The review focuses the use of logs and snapshot/checkpoints, because you can see a lot of similar ideas in the design and use of Kafka

LSN

  1. Why do we need LSN on the page?

  2. Why do we need PrevLSN on the record?

  3. How do we decide if we want to redo a record update?

  4. Why LSN is not compared during undo?*

  5. What does RecLSN represent? 

  6. Do we need to reason if data/op inside a record itself is idempotent? why or why not?

CLR

The major mechanism to support transaction rollback is Compensation log records (CLR)

  1. Why do we need CLR?

  2. Why is CLR undo-only?

  3. How do we ensure CLR does not grow unbound in the case of repeated rollback failure?

Checkpointing

Checkpointing is used to reduce number of logs and non-volatile page reads during recovery

  1. What is in the checkpoint?

  2. How to determine the value of UndoNxtLSN?

  3. Checkpoints are taken asynchronously, that means, before checkpointing is complete, more pages may become dirty, or persisted into
non-volatile storage. Why is this not problem?

Misc

  1. How does ARIES maintain disk stability

  2. Logical logging: incr/dec type operations, derivable changes

  3. disadvantages of shadow page technique