A reader snapshot at 10 pins the transfer from committed WAL value 20 into the database file.

Checkpoints establish a recovery starting point

A checkpoint records progress that lets a database recover without treating its entire log history as outstanding work. The exact operation depends on the engine. PostgreSQL synchronizes the data changes required for a checkpoint and establishes a redo starting point. SQLite in WAL mode transfers eligible committed page frames from its WAL into the main database file. Neither operation is simply another name for transaction commit. ...

October 17, 2027 · 5 min · XB Field Notes
A physical base leads through retained good changes to a named stop point before bad changes. A second, broken chain shows a missing segment preventing arrival at the target.

Postgres WAL archiving reaches point-in-time recovery

Point-in-time recovery starts with a valid physical base backup and replays the WAL required to reach a chosen recovery target. The target must fall within the recoverable history of that backup and its available timelines. Archiving does not create the ability to recover to arbitrary earlier dates, nor does it repair a gap between the backup and the desired endpoint. ...

June 25, 2027 · 6 min · XB Field Notes
An unlogged table branches to retained rows after a clean restart and an empty relation after crash recovery.

UNLOGGED table contents trade crash recovery for less WAL

An unlogged PostgreSQL table keeps normal SQL transaction behavior while giving up crash recovery for its contents. It is useful for reproducible staging data, but a committed row is not guaranteed to survive a server crash. The distinction is between clean operation and recovery after an unclean shutdown, not between ordinary queries and every restart. ...

May 24, 2027 · 6 min · XB Field Notes
Completed WAL segments reach the archive only when preservation succeeds. A nonzero archive result causes retry and local retention, while identical and conflicting repeats require different outcomes.

WAL archiving preserves a recoverable history

Continuous WAL archiving preserves completed log files outside PostgreSQL’s active WAL directory. Together with a suitable base backup and an uninterrupted recovery chain, those files let recovery replay logged database changes to a covered target. Archiving is separate from ordinary commit acknowledgment: a transaction can commit while its WAL segment is still open or while the archive destination is unavailable. ...

April 22, 2027 · 6 min · XB Field Notes