On Fri, Feb 9, 2018 at 12:45 AM, Claudio Freire <klaussfre...@gmail.com> wrote: > On Thu, Feb 8, 2018 at 1:36 AM, Masahiko Sawada <sawada.m...@gmail.com> wrote: >> On Tue, Feb 6, 2018 at 9:51 PM, Claudio Freire <klaussfre...@gmail.com> >> wrote: >>> I can look into doing 3, that *might* get rid of the need to do that >>> initial FSM vacuum, but all other intermediate vacuums are still >>> needed. >> >> Understood. So how about that this patch focuses only make FSM vacuum >> more frequently and leaves the initial FSM vacuum and the handling >> cancellation cases? The rest can be a separate patch. > > Ok. > > Attached split patches. All but the initial FSM pass is in 1, the > initial FSM pass as in the original patch is in 2. > > I will post an alternative patch for 2 when/if I have one. In the > meanwhile, we can talk about 1.
Thank you for updating the patch! + /* Tree pruning for partial vacuums */ + if (threshold) + { + child_avail = fsm_get_avail(page, slot); + if (child_avail >= threshold) + continue; + } I think slots in a non-leaf page might not have a correct value because fsm_set_avail doesn't propagate up beyond pages. So do we need to check the root of child page rather than a slot in the non-lead page? I might be missing something though. Regards, -- Masahiko Sawada NIPPON TELEGRAPH AND TELEPHONE CORPORATION NTT Open Source Software Center