Re: maintenance_work_mem used by Vacuum

Поиск
Список
Период
Сортировка
От Masahiko Sawada
Тема Re: maintenance_work_mem used by Vacuum
Дата
Msg-id CAD21AoA6gRX6c6c_1UEwzvQSHas7pC2F-4tjeqq3g45o2YGYnA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: maintenance_work_mem used by Vacuum  (Amit Kapila <amit.kapila16@gmail.com>)
Ответы Re: maintenance_work_mem used by Vacuum  (Dilip Kumar <dilipbalaut@gmail.com>)
Список pgsql-hackers
On Tue, Oct 8, 2019 at 2:45 PM Amit Kapila <amit.kapila16@gmail.com> wrote:
>
> On Tue, Oct 8, 2019 at 1:48 AM Peter Geoghegan <pg@bowt.ie> wrote:
> >
> > On Mon, Oct 7, 2019 at 12:28 PM Robert Haas <robertmhaas@gmail.com> wrote:
> > > I would say that sucks, because it makes it harder to set
> > > maintenance_work_mem correctly.  Not sure how hard it would be to fix,
> > > though.
> >
> > ginInsertCleanup() may now be the worst piece of code in the entire
> > tree, so no surprised that it gets this wrong too.
> >
> > 2016's commit e2c79e14d99 ripped out the following comment about the
> > use of maintenance_work_mem by ginInsertCleanup():
> >
> > @@ -821,13 +847,10 @@ ginInsertCleanup(GinState *ginstate,
> >   * Is it time to flush memory to disk? Flush if we are at the end of
> >   * the pending list, or if we have a full row and memory is getting
> >   * full.
> > - *
> > - * XXX using up maintenance_work_mem here is probably unreasonably
> > - * much, since vacuum might already be using that much.
> >   */
> >
> > ISTM that the use of maintenance_work_mem wasn't given that much
> > thought originally.
> >
>
> One idea to something better could be to check, if there is a GIN
> index on a table, then use 1/4 (25% or whatever) of
> maintenance_work_mem for GIN indexes and 3/4 (75%) of
> maintenance_work_mem for collection dead tuples.
>

I felt that it would not be easy for users to tune
maintenance_work_mem which controls more than one things.  If this is
an index AM(GIN) specific issue we might rather want to control the
memory limit of pending list cleanup by a separate GUC parameter like
gin_pending_list_limit, say gin_pending_list_work_mem. And we can
either set the  (the memory for GIN pending list cleanup / # of GIN
indexes) to the parallel workers.

Regards,

--
Masahiko Sawada



В списке pgsql-hackers по дате отправления:

Предыдущее
От: "Jordan Deitch"
Дата:
Сообщение: WIP: raise error when submitting invalid ALTER SYSTEM command
Следующее
От: Tom Lane
Дата:
Сообщение: Re: WIP: raise error when submitting invalid ALTER SYSTEM command