Improve handling of prune/no-prune decisions by storing a page's oldest
Tom Lane <tgl@sss.pgh.pa.us>
Improve handling of prune/no-prune decisions by storing a page's oldest unpruned XMAX in its header. At the cost of 4 bytes per page, this keeps us from performing heap_page_prune when there's no chance of pruning anything. Seems to be necessary per Heikki's preliminary performance testing.
Files
| Path | Change | +/− |
|---|---|---|
| contrib/pageinspect/pageinspect.sql.in | modified | +2 −1 |
| contrib/pageinspect/rawpage.c | modified | +4 −3 |
| contrib/pageinspect/README.pageinspect | modified | +6 −6 |
| doc/src/sgml/storage.sgml | modified | +12 −4 |
| src/backend/access/heap/heapam.c | modified | +14 −12 |
| src/backend/access/heap/pruneheap.c | modified | +19 −8 |
| src/backend/access/heap/README.HOT | modified | +3 −3 |
| src/backend/storage/page/bufpage.c | modified | +3 −2 |
| src/include/catalog/catversion.h | modified | +2 −2 |
| src/include/storage/bufpage.h | modified | +27 −18 |