On Wed, Mar 14, 2018 at 7:40 AM, Masahiko Sawada <sawada.m...@gmail.com> wrote:
> On Sat, Mar 10, 2018 at 3:40 AM, Alexander Korotkov > <a.korot...@postgrespro.ru> wrote: > > On Fri, Mar 9, 2018 at 3:12 PM, Masahiko Sawada <sawada.m...@gmail.com> > > wrote: > >> > >> On Fri, Mar 9, 2018 at 8:43 AM, Alexander Korotkov > >> <a.korot...@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. > > What overhead are you referring here? I guess the overhead is only the > calculating the oldest btpo.xact. And I think it would be harmless. > I meant overhead of setting last_cleanup_num_heap_tuples after every btbulkdelete with wal-logging of meta-page. I bet it also would be harmless, but I think that needs some testing. ------ Alexander Korotkov Postgres Professional: http://www.postgrespro.com The Russian Postgres Company