Skip to content
About
Main content
Recurring principle

The recovery path is the normal path

The recovery path should be the normal path.

What it is

A recovery mechanism that has never executed under production conditions is an unverified assumption, and fault tolerance is made entirely of those. An untested path defaults to broken. The absence of observed failure is absence of evidence, not evidence of resilience; the only way to learn whether a rare path works is to make it not rare, deliberately.

From Measurement & Experimental Method › Chaos testing

The standard recovery algorithm for databases with mutable pages, ARIES, combines both directions: it redoes everything since the oldest dirty page, then undoes the transactions that never committed. How it works is part of Persistence & Durability. What matters here is why it is built the way it is: crashes during recovery are the normal case, not the edge case, so redo is idempotent (a record is applied only if pageLSN < recordLSN) and every undo step is itself logged and never undone. Recovery can crash and restart any number of times and still converge. It is the first strong evidence for the hypothesis that the recovery path should be the normal path.

From Fault Tolerance & Delivery Semantics › Rollback and undo

One item is in almost nobody's backup plan: an unverified backup is a hypothesis, not a backup. Restore testing is the only mechanism in this whole mechanism that actually samples the rare path. It is the activity with the highest information gained per dollar. A backup that silently fails to capture the data shows the same green dashboard as one that works, for years: backups are write-only until tested. The test is a periodic restore into a scratch environment, followed by a row-count and checksum comparison.

From Persistence & Durability › Backup and PITR

Where it appears

In 4 mechanisms. Each says what the mechanism is about, then how this principle shows up there, in its own words.

Made on the same pages most often.