Hello

> * in_parallel is true if we're performing parallel lazy vacuum. Since any
> * updates are not allowed during parallel mode we don't update statistics
> * but set the index bulk-deletion result to *stats. Otherwise we update it
> * and set NULL.

lazy_cleanup_index has in_parallel argument only for this purpose, but caller 
still should check in_parallel after lazy_cleanup_index call and do something 
else with stats for parallel execution.
Would be better always return stats and update statistics in caller? It's 
possible to update all index stats in lazy_vacuum_all_indexes for example? This 
routine is always parallel leader and has comment /* Do post-vacuum cleanup and 
statistics update for each index */ on for_cleanup=true call.

I think we need note in documentation that parallel leader is not counted in 
PARALLEL N option, so with PARALLEL 2 option we want use 3 processes. Or even 
change behavior? Default with PARALLEL 1 - only current backend in single 
process is running, PARALLEL 2 - leader + one parallel worker, two processes 
works in parallel.

regards, Sergei

Reply via email to