The following review has been posted through the commitfest application:
make installcheck-world:  tested, passed
Implements feature:       tested, passed
Spec compliant:           not tested
Documentation:            not tested

Hello

I reviewed v25 patches and have just a few notes.

missed synopsis for "PARALLEL" option (<synopsis> block in 
doc/src/sgml/ref/vacuum.sgml )
missed prototype for vacuum_log_cleanup_info in "non-export function prototypes"

>       /*
>        * Do post-vacuum cleanup, and statistics update for each index if
>        * we're not in parallel lazy vacuum. If in parallel lazy vacuum, do
>        * only post-vacum cleanup and update statistics at the end of parallel
>        * lazy vacuum.
>        */
>       if (vacrelstats->useindex)
>               lazy_vacuum_or_cleanup_indexes(vacrelstats, Irel, nindexes,
>                                                                          
> indstats, lps, true);
>
>       if (ParallelVacuumIsActive(lps))
>       {
>               /* End parallel mode and update index statistics */
>               end_parallel_vacuum(lps, Irel, nindexes);
>       }

I personally do not like update statistics in different places.
Can we change lazy_vacuum_or_cleanup_indexes to writing stats for both parallel 
and non-parallel cases? I means something like this:

>       if (ParallelVacuumIsActive(lps))
>       {
>               /* Do parallel index vacuuming or index cleanup */
>               lazy_parallel_vacuum_or_cleanup_indexes(vacrelstats, Irel,
>                                                                               
>                 nindexes, stats,
>                                                                               
>                 lps, for_cleanup);
>               if (for_cleanup)
>               {
>            ...
>                       for (i = 0; i < nindexes; i++)
>                               lazy_update_index_statistics(...);
>               }
>               return;
>       }

So all lazy_update_index_statistics would be in one place. 
lazy_parallel_vacuum_or_cleanup_indexes is called only from parallel leader and 
waits for all workers. Possible we can update stats in 
lazy_parallel_vacuum_or_cleanup_indexes after WaitForParallelWorkersToFinish 
call.

Also discussion question: vacuumdb parameters --parallel= and --jobs= will 
confuse users? We need more description for this options?

regards, Sergei

Reply via email to