On Fri, Mar 9, 2018 at 8:43 AM, Alexander Korotkov <a.korotkov@postgrespro.ru> wrote: > 2) These parameters are reset during btbulkdelete() and set during > btvacuumcleanup().
Can't we set these parameters even during btbulkdelete()? By keeping them up to date, we will able to avoid an unnecessary cleanup vacuums even after index bulk-delete.
We certainly can update cleanup-related parameters during btbulkdelete().
However, in this case we would update B-tree meta-page during each
VACUUM cycle. That may cause some overhead for non append-only
workloads. I don't think this overhead would be sensible, because in
non append-only scenarios VACUUM typically writes much more of information.
But I would like this oriented to append-only workload patch to be
as harmless as possible for other workloads.
I've not reviewed the code deeply yet but the regression test of this
patch seems to wrongly pass the regression tests and bt_metap() function of pageinspect needs to be updated.
Right. Thank you for fixing this issue.
Attached an updated patch fixed these issue. Will review the patch again.