Re: parallel vacuum options/syntax

From: Guillaume Lelarge <guillaume(at)lelarge(dot)info>
To: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Sawada Masahiko <sawada(dot)mshk(at)gmail(dot)com>, Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com>, Dilip Kumar <dilipbalaut(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>
Subject: Re: parallel vacuum options/syntax
Date: 2020-01-03 08:08:13
Message-ID: CAECtzeVhL+zMo17sQnzzFdGdLLVADda5hrwN9XyxJUdSV5MG+A@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Le ven. 3 janv. 2020 à 09:06, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> a
écrit :

> On Thu, Jan 2, 2020 at 7:09 PM Guillaume Lelarge <guillaume(at)lelarge(dot)info>
> wrote:
> >
> > Le jeu. 2 janv. 2020 à 13:09, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> a
> écrit :
> >>
> >> If parallel vacuum is *not* enabled by default, then I think the
> current way to enable is fine which is as follows:
> >> Vacuum (Parallel 2) <tbl_name>;
> >>
> >> Here, if the user doesn't specify parallel_degree, then we internally
> decide based on number of indexes that support a parallel vacuum with a
> maximum of max_parallel_maintenance_workers.
> >>
> >> If the parallel vacuum is enabled by default, then I could think of the
> following ways:
> >> (a) Vacuum (disable_parallel) <tbl_name>; Vacuum (Parallel
> <parallel_degree>) <tbl_name>;
> >> (b) Vacuum (Parallel <parallel_degree>) <tbl_name>; If user specifies
> parallel_degree as 0, then disable parallelism.
> >> (c) ... Any better ideas?
> >>
> >
> > AFAICT, every parallel-able statement use parallelisation by default, so
> it wouldn't be consistent if VACUUM behaves some other way.
> >
>
> Fair enough.
>
> > So, (c) has my vote.
> >
>
> I don't understand this. What do you mean by voting (c) option? Do
> you mean that you didn't like any of (a) or (b)?

I meant (b), sorry :)

If so, then feel
> free to suggest something else. One more possibility could be to
> allow users to specify parallel degree or disable parallelism via guc
> 'max_parallel_maintenance_workers'. Basically, if the user wants to
> disable parallelism, it needs to set the value of guc
> max_parallel_maintenance_workers as zero and if it wants to increase
> the parallel degree than the default value (which is two), then it can
> set it via max_parallel_maintenance_workers before running vacuum
> command. Now, this can certainly work, but I feel setting/resetting a
> guc before a vacuum
> command can be a bit inconvenient for users, but if others prefer that
> way, then we can do that.
>
>

--
Guillaume.

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Ibrar Ahmed 2020-01-03 08:29:23 Re: Commit fest manager for 2020-01
Previous Message Peter Eisentraut 2020-01-03 08:06:10 Re: Windows v readline