Hi
Thank you for update! I looked again
(vacuum_indexes_leader)
+ /* Skip the indexes that can be processed by parallel workers */
+ if (!skip_index)
+ continue;
Does the variable name skip_index not confuse here? Maybe rename to something
like can_parallel?
Another question about behavior on temporary tables. Use case: the user
commands just "vacuum;" to vacuum entire database (and has enough maintenance
workers). Vacuum starts fine in parallel, but on first temporary table we hit:
+ if (RelationUsesLocalBuffers(onerel) && params->nworkers >= 0)
+ {
+ ereport(WARNING,
+ (errmsg("disabling parallel option of vacuum on
\"%s\" --- cannot vacuum temporary tables in parallel",
+
RelationGetRelationName(onerel))));
+ params->nworkers = -1;
+ }
And therefore we turn off the parallel vacuum for the remaining tables... Can
we improve this case?
regards, Sergei