Hi, I was going through the parallel vacuum docs and code. I found below things, please someone clarify:
1) I see that a term "parallel degree" is used in the docs, code comments, error messages "parallel vacuum degree must be a non-negative integer", "parallel vacuum degree must be between 0 and %d". Is there any specific reason to use the term "parallel degree"? In the docs and code comments we generally use "parallel workers". 2) The error messages "parallel vacuum degree must be between 0 and %d" and "parallel option requires a value between 0 and %d" look inconsistent. 3) Should the Assert(nindexes > 0); in begin_parallel_vacuum just be Assert(nindexes > 1); as this function is entered only when indexes are > 1? 4) IIUC, below comment says that even if PARALLEL 0 is specified with VACUUM command, there are chances that the indexes are vacuumed in parallel. Isn't it a bit unusual that a user specified 0 workers but still the system is picking up parallelism? I'm sure this would have been discussed, but I'm curious to know the reason. * nrequested is the number of parallel workers that user requested. If * nrequested is 0, we compute the parallel degree based on nindexes, that is * the number of indexes that support parallel vacuum. 5) Can the parallel_workers in below condition ever be negative in begin_parallel_vacuum? I think we can just have if (parallel_workers == 0). /* Can't perform vacuum in parallel */ if (parallel_workers <= 0) 6) I think, instead of saying "using integer background workers", we can just say "using specified or lesser number of background workers". >From the docs: Perform index vacuum and index cleanup phases of VACUUM in parallel using integer background workers We can say "workers specified will be used during execution" >From the docs: workers specified in integer will be used during execution 7) I think we need a comma after "if any" . >From the docs: which is limited by the number of workers specified with PARALLEL option if any which is further limited by 8) Is it still true that if parallel workers are specified as 0 the parallelism will not be picked up? >From the docs: This feature is known as parallel vacuum. To disable this feature, one can use PARALLEL option and specify parallel workers as zero. With Regards, Bharath Rupireddy. EnterpriseDB: http://www.enterprisedb.com