Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access)
От | Kirill Reshke |
---|---|
Тема | Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access) |
Дата | |
Msg-id | CALdSSPgtJLjqT2WcK=ZR86ENL7hD0m+xHwG39V7A=+XWpg5udw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access) (Melanie Plageman <melanieplageman@gmail.com>) |
Ответы |
Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access)
|
Список | pgsql-hackers |
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
В списке pgsql-hackers по дате отправления: