2. xtrabackup calls InnoDB's row_merge_build_indexes() which accepts multiple index definitions, then does the following:
a) scans the clustered index, and writes secondary index tuples into temporary files, one file per index
b) sorts index tuples from temporary files and populates index pages. This handles one index at a time.
So it would be possible to break a single row_merge_build_indexes() call into many calls (one per index) and do it in parallel. But that would also mean that the clustered index would be scanned multiple times.
One way to fix this is to make fast index creation parallel in the server, so that step b) is performed with a specified number of threads. That would also provide the requested functionality after rebasing XB on the corresponding PS version.
1. Sure.
2. xtrabackup calls InnoDB's row_merge_ build_indexes( ) which accepts multiple index definitions, then does the following:
a) scans the clustered index, and writes secondary index tuples into temporary files, one file per index
b) sorts index tuples from temporary files and populates index pages. This handles one index at a time.
So it would be possible to break a single row_merge_ build_indexes( ) call into many calls (one per index) and do it in parallel. But that would also mean that the clustered index would be scanned multiple times.
One way to fix this is to make fast index creation parallel in the server, so that step b) is performed with a specified number of threads. That would also provide the requested functionality after rebasing XB on the corresponding PS version.