On Wed, Nov 20, 2019 at 11:01 AM Masahiko Sawada <masahiko.saw...@2ndquadrant.com> wrote: > > I've attached the latest version patch set. The patch set includes all > discussed points regarding index AM options as well as shared cost > balance. Also I added some test cases used all types of index AM. > > During developments I had one concern about the number of parallel > workers to launch. In current design each index AMs can choose the > participation of parallel bulk-deletion and parallel cleanup. That > also means the number of parallel worker to launch might be different > for each time of parallel bulk-deletion and parallel cleanup. In > current patch the leader will always launch the number of indexes that > support either one but it would not be efficient in some cases. For > example, if we have 3 indexes supporting only parallel bulk-deletion > and 2 indexes supporting only parallel index cleanup, we would launch > 5 workers for each execution but some workers will do nothing at all. > To deal with this problem, I wonder if we can improve the parallel > query so that the leader process creates a parallel context with the > maximum number of indexes and can launch a part of workers instead of > all of them. >
Can't we choose the number of workers as a maximum of "num_of_indexes_that_support_bulk_del" and "num_of_indexes_that_support_cleanup"? If we can do that, then we can always launch the required number of workers for each phase (bulk_del, cleanup). In your above example, it should choose 3 workers while creating a parallel context. Do you see any problem with that? -- With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com