On Wed, 13 Nov 2019 at 17:57, Amit Kapila <amit.kapil...@gmail.com> wrote: > > On Wed, Nov 13, 2019 at 11:39 AM Masahiko Sawada > <masahiko.saw...@2ndquadrant.com> wrote: > > > > On Wed, 13 Nov 2019 at 12:43, Dilip Kumar <dilipbal...@gmail.com> wrote: > > > > > > > > > In this function, if ParallelVacuumIsActive, we perform the parallel > > > vacuum for all the index for which parallel vacuum is supported and > > > once that is over we finish vacuuming remaining indexes for which > > > parallel vacuum is not supported. But, my question is that inside > > > lazy_parallel_vacuum_or_cleanup_indexes, we wait for all the workers > > > to finish their job then only we start with the sequential vacuuming > > > shouldn't we start that immediately as soon as the leader > > > participation is over in the parallel vacuum? > > > > If we do that, while the leader process is vacuuming indexes that > > don't not support parallel vacuum sequentially some workers might be > > vacuuming for other indexes. Isn't it a problem? > > > > Can you please explain what problem do you see with that?
I think it depends on index AM user expectation. If disabling parallel vacuum for an index means that index AM user doesn't just want to vacuum the index by parallel worker, it's not problem. But if it means that the user doesn't want to vacuum the index during other indexes is being processed in parallel it's unexpected behaviour for the user. I'm probably worrying too much. -- Masahiko Sawada http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services