Re: parallel vacuum - few questions on docs, comments and code
От | Justin Pryzby |
---|---|
Тема | Re: parallel vacuum - few questions on docs, comments and code |
Дата | |
Msg-id | 20210511130147.GG27406@telsasoft.com обсуждение исходный текст |
Ответ на | parallel vacuum - few questions on docs, comments and code (Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>) |
Ответы |
Re: parallel vacuum - few questions on docs, comments and code
Re: parallel vacuum - few questions on docs, comments and code |
Список | pgsql-hackers |
On Tue, May 11, 2021 at 05:37:50PM +0530, Bharath Rupireddy wrote: > 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? I think you're right, at least with the current implementation that parallelization is done across indexes. Same in parallel_vacuum_main. > 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. No - nrequested is not actually the number of workers requested - it seems like a poor choice of name. This is the key part: src/include/commands/vacuum.h * The number of parallel vacuum workers. 0 by default which means choose * based on the number of indexes. -1 indicates parallel vacuum is * disabled. */ int nworkers; } VacuumParams; The parsing code is in src/backend/commands/vacuum.c. > 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. I think it's the same answer as above. -- Justin
В списке pgsql-hackers по дате отправления: