Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access)
Kirill Reshke <reshkekirill@gmail.com>
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Remove table_scan_analyze_next_tuple unneeded parameter OldestXmin
- 284925508ae6 19 (unreleased) landed
-
Simplify visibility check in heap_page_would_be_all_visible()
- 3efe58febc3c 19 (unreleased) landed
-
Eliminate use of cached VM value in lazy_scan_prune()
- 648a7e28d7c2 19 (unreleased) landed
-
Combine visibilitymap_set() cases in lazy_scan_prune()
- 21796c267d0a 19 (unreleased) landed
-
Fix const qualification in prune_freeze_setup()
- 4877391ce894 19 (unreleased) landed
-
Simplify vacuum visibility assertion
- bd298f54a0d6 19 (unreleased) landed
-
Split heap_page_prune_and_freeze() into helpers
- e135e044572e 19 (unreleased) landed
-
Assert that cutoffs are provided if freezing will be attempted
- cd38b7e77315 19 (unreleased) landed
-
Split PruneFreezeParams initializers to one field per line
- 1e14edcea5e1 19 (unreleased) landed
-
Refactor heap_page_prune_and_freeze() parameters into a struct
- 1937ed70621e 19 (unreleased) landed
-
Make heap_page_is_all_visible independent of LVRelState
- 3e4705484e0c 19 (unreleased) landed
-
Inline TransactionIdFollows/Precedes[OrEquals]()
- 43b05b38ea4d 19 (unreleased) landed
-
Add helper for freeze determination to heap_page_prune_and_freeze
- c8dd6542bae4 19 (unreleased) landed
-
Bump XLOG_PAGE_MAGIC after xl_heap_prune change
- 4a8fb58671d3 19 (unreleased) landed
-
Correct prune WAL record opcode name in comment
- ae8ea7278c16 19 (unreleased) landed
-
Add error codes when vacuum discovers VM corruption
- 8ec97e78a771 19 (unreleased) landed
-
Remove unused xl_heap_prune member, reason
- 4b5f206de2bb 19 (unreleased) landed
-
Remove unneeded VM pin from VM replay
- 3399c265543e 19 (unreleased) landed
-
Add assert and log message to visibilitymap_set
- e3d5ddb7ca91 19 (unreleased) landed
-
Add error codes to some corruption log messages
- fd6ec93bf890 13.0 cited
On Thu, 9 Oct 2025 at 03:54, Melanie Plageman <melanieplageman@gmail.com> wrote: > > On Mon, Oct 6, 2025 at 6:40 PM Melanie Plageman > <melanieplageman@gmail.com> wrote: > > > > In attached v16, I’ve reverted to removing XLOG_HEAP2_VISIBLE > > entirely, rather than first removing each caller's heap page from the > > VM WAL chain. I reordered changes and squashed several refactoring > > patches to improve patch-by-patch readability. This should make the > > set read differently from earlier versions that removed > > XLOG_HEAP2_VISIBLE and had more step-by-step mechanical refactoring. > > > > I think if we plan to go all the way with removing XLOG_HEAP2_VISIBLE, > > having intermediate patches that just set PD_ALL_VISIBLE when making > > other heap pages are more confusing than helpful. Also, I think having > > separate flags for setting PD_ALL_VISIBLE in the WAL record > > over-complicated the code. > > I decided to reorder the patches to remove XLOG_HEAP2_VISIBLE from > vacuum phase III before removing it from vacuum phase I because > removing it from phase III doesn't require preliminary refactoring > patches. I've done that in the attached v17. > > I've also added an experimental patch on the end that refactors large > chunks of heap_page_prune_and_freeze() into helpers. I got some > feedback off-list that heap_page_prune_and_freeze() is too unwieldy > now. I'm not sure how I feel about them yet, so I haven't documented > them or moved them up in the patch set to before changes to > heap_page_prune_and_freeze(). > > 0001: Eliminate XLOG_HEAP2_VISIBLE from COPY FREEZE > 0002: Eliminate XLOG_HEAP2_VISIBLE from phase III of vacuum > 0003 - 0006: cleanup and refactoring to prepare for 0007 > 0007: Eliminate XLOG_HEAP2_VISIBLE from vacuum prune/freeze > 0008 - 0009: Remove XLOG_HEAP2_VISIBLE > 0010 - 0012: refactoring to prepare for 0013 > 0013: Set VM on-access > 0014: Set pd_prune_xid on insert > 0015: Experimental refactoring of heap_page_prune_and_freeze into helpers > > - Melanie Hi! Should we also bump XLOG_PAGE_MAGIC after d96f87332 & add323da40a or do we wait for full set to be committed? -- Best regards, Kirill Reshke