On Fri, 3 Jan 2020 at 08:51, Dilip Kumar <dilipbal...@gmail.com> wrote: > > On Thu, Jan 2, 2020 at 5:39 PM Amit Kapila <amit.kapil...@gmail.com> wrote: > > > > Hi, > > > > I am starting a new thread for some of the decisions for a parallel vacuum > > in the hope to get feedback from more people. There are mainly two points > > for which we need some feedback. > > > > 1. Tomas Vondra has pointed out on the main thread [1] that by default the > > parallel vacuum should be enabled similar to what we do for Create Index. > > As proposed, the patch enables it only when the user specifies it (ex. > > Vacuum (Parallel 2) <tbl_name>;). One of the arguments in favor of > > enabling it by default as mentioned by Tomas is "It's pretty much the same > > thing we did with vacuum throttling - it's disabled for explicit vacuum by > > default, but you can enable it. If you're worried about VACUUM causing > > issues, you should set cost delay.". Some of the arguments against > > enabling it are that it will lead to use of more resources (like CPU, I/O) > > which users might or might like. > > > > Now, if we want to enable it by default, we need a way to disable it as > > well and along with that, we need a way for users to specify a parallel > > degree. I have mentioned a few reasons why we need a parallel degree for > > this operation in the email [2] on the main thread. > > > > 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? > > IMHO, it's better to keep the parallelism enables by default. Because > if the user is giving an explicit vacuum then better to keep it fast > by default. However, I agree that we can provide an option for the > user to disable it and provide the parallel degree with the vacuum > command something like option (b).
+1 Thanks and Regards Mahendra Singh Thalor EnterpriseDB: http://www.enterprisedb.com