[prev] 12 [next]

Recovery in PostgreSQL

PostgreSQL uses write-ahead undo/redo style logging.

It also uses multi-version concurrency control, which

  • tags each record with a tx and update timestamp
MVCC simplifies some aspects of undo/redo, e.g.
  • some info required by logging is already held in each tuple
  • no need to undo effects of aborted tx's; use old version