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


Reply via email to