On Mon, Mar 11, 2024 at 3:44 PM Maxim Orlov <orlovmg@gmail.com> wrote:
> On Tue, 6 Feb 2024 at 09:22, Michael Paquier <michael@paquier.xyz> wrote:
>> The problem may be actually trickier than that, no? Could there be
>> other factors to take into account for their classification, like
>> their sizes (typically, we'd want to process the biggest one first, I
>> guess)?
>
>
> Sorry for a late reply. Thanks for an explanation. This is sounds reasonable to me.
> Svetlana had addressed this in the patch v2.
I think this patch is a nice improvement. But it doesn't seem to be
implemented in the right way. There is no guarantee that
get_parallel_object_list() will return tables in the same order as
indexes. Especially when there is "ORDER BY idx.relpages". Also,
sort_indices_by_tables() has quadratic complexity (probably OK since
input list shouldn't be too lengthy) and a bit awkward.
I've revised the patchset. Now appropriate ordering is made in SQL
query. The original list of indexes is modified to match the list of
tables. The tables are ordered by the size of its greatest index,
within table indexes are ordered by size.
I'm going to further revise this patch, mostly comments and the commit message.
------
Regards,
Alexander Korotkov