Why sequences leave gaps: caching, WAL log-ahead, and rollback
Simple terms
A sequence promises two things: unique, and increasing. It never promised no gaps. The jump from 1 to 101 happened because a session grabbed a block of a hundred values up front and threw away what it didn't use. The crash skipped a run because Postgres pre-logs a batch of values to WAL and treats anything unspent as gone. And the rolled-back insert still burned its number, because sequences deliberately sit outside your transaction. Making them gap-free would mean every insert queuing behind the last one.
You might be asked
Our primary-key sequence has gaps -- it jumps from 1 to 101, and after a crash it skipped ~30 values, and a rolled-back transaction still 'used up' an id. The customer thinks we're losing data. Walk me through why a PostgreSQL sequence is allowed to have gaps and where each kind of gap actually comes from.
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.
Unlock the full breakdown for Why sequences leave gaps: caching, WAL log-ahead, and rollback
- 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.
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.