MVCC & visibilitysenior🔒 Pro concept

The commit log (clog/pg_xact): where a transaction's outcome is recorded

Simple terms

Postgres has to remember the fate of every transaction that ever ran: did it commit, or did it abort? That answer is stored in two bits. Not two bytes, two bits, in a commit log on disk. So when your query looks at a row and asks whether it can see it, the real question underneath is whether the transaction that wrote that row committed. The commit log is where it goes to find out.

You might be asked

When a transaction commits, where exactly is 'this xid committed' recorded, and how does another transaction later find out whether some xid committed or aborted? How big is that per-transaction record, how many transactions fit on one page, and what happens to that information once the xid is frozen?

TopicThe commit log (clog/pg_xact): how transaction outcomes are stored as 2 bits per xid in an SLRU
PostgreSQL9.x-17 (measured on 17.10; pg_xact_status 10+, pg_stat_slru 13+)
Tools usedDocker pgi17 (PostgreSQL 17.10), pg_xact_status, pg_stat_slru, source @REL_17_10
Last reviewed2026-06-19

Pro concept

Full answer and evidence depth sit behind Pro

You have the question and a plain-English lead. Pro unlocks the short answer, what the docs say, what the code does, the labeled lab evidence or reproduction protocol, how to use it under pressure, and the references.

ProFull answer + evidence depth

Unlock the full breakdown for The commit log (clog/pg_xact): where a transaction's outcome is recorded

You have the interview question and a plain-English lead. Pro opens the short answer, the manual walkthrough, the source decode, and a 1-line evidence section that states whether it is raw output, a captured run summary, or a protocol to run yourself, plus how to use it under pressure.
  • How you'd answer it, the full senior-level short answer
  • What the docs say, the manual's actual wording, with the citations
  • What the code does, the mechanism decoded from PostgreSQL's own source at a pinned tag
  • Proof from a real run, labeled as raw output, a captured run summary, or a run-it-yourself protocol
  • Using it under pressure, the situation, the call you'd make, what goes wrong, and what people get wrong
  • Version notes, what changed across PostgreSQL releases

Card required. Cancel before day 7 and you are not charged.

Compare plans

How this was verified

The open teaser is the question and a plain-English lead. The short answer, the manual walkthrough, the source decode, the lab evidence, and how to use it under pressure unlock with Pro. Evidence is labeled as raw output, a captured run summary, or a run-it-yourself protocol.

Connected

Where this concept connects

How this concept links across the library, the interview questions that test it, its plain-English glossary definition, and the guided pathways it belongs to. Open the full map to explore further.

Open in the interactive map →