postgres=# select * from sessions where video_id = 'Ib3SXSFt8mE';
Index bloat and B-tree page merge, part 2
Continue B-tree page-merge design and prototype.
session summary
The session established why sparse B-tree pages matter: they increase buffer churn, WAL full-page images, replica storage, and the cost of scans. The group then traced vacuum's existing half-dead page deletion and studied whether a merge could resemble a split. Moving tuples directly exposed a duplicate-read race for concurrent scans, implying a two-phase protocol that removes the parent downlink before relocation. By the end they identified split/finish-split as the code to reverse, but deferred implementation pending a sound scan protocol.
timecodes
- Operational costs of sparse B-tree pages
- Why Postgres has reindexing but no page merge
- Can merge be shaped like an existing page split?
- Tracing vacuum and half-dead page deletion
- Moving tuples into a sibling before deletion
- Concurrent scans expose duplicate reads
- A two-phase merge and scan-awareness requirement
- Reversing finish-split becomes the next design step