Write-Ahead Logging: How WAL Guarantees Durability
When COMMIT returns, your change has to survive a power cut.
Writing every touched page to disk right then would be painfully slow, so PostgreSQL first jots down a short note describing the change in one sequential log, the WAL, and flushes that. The note is enough to rebuild your change after a crash.
Pro members see the rest of this lesson
- A 4-step state diagram: Modify → Log → Commit → Checkpoint
- The full mechanism: what PostgreSQL does internally, in source terms
- 1 SQL query you can run, each labelled by how it was verified
- 2 transcripts captured on PostgreSQL 17.10
- The closing insight, the mistake it prevents, and what it changes in your work
Card required. Cancel before day 7 and you are not charged.
Check it against the source4 citations in postgres/postgres · file, symbol and line verified on REL_17_STABLE
Primary symbol: CommitTransaction · line 2188
Primary symbol: XLogFlush · line 2778
Primary symbol: XLogInsert · line 474
Primary symbol: XLogRecPtr · line 21
Anchored to postgres/postgres on REL_17_STABLE and cross-checked against the manual for PostgreSQL 15–18. Every query here was run and its output captured on a throwaway PostgreSQL 17.10 lab; corrections are noted inline. §30.3 Write-Ahead Logging (WAL) in the official docs →
Connected
Where this lesson sits
What comes before, after, and alongside it.
Part of these pathways
Same learning track
Finished a free lesson?
Pro opens the rest of the engine course
You felt one mechanism. Pro is the full bodies, interview depth, and the tracks that build on this session.