Requeue move builds metadata migration

What does this MR do and why?

This MR reschedules the background migration that was introduced in !208674 (merged) to fix two issues:

  1. Enqueue migrations per partition name for parallelism: The original migration used p_ci_builds as the table name, but this MR changes it to enqueue separate jobs for each partition name (e.g., public.p_ci_builds_100, public.p_ci_builds_101, etc.). This enables parallelism in the background migration framework by allowing multiple partitions to be processed concurrently.

  2. Fix vacuum check for fully qualified table names: The vacuum check logic has been updated to work correctly with fully qualified table names instead of just the base table name.

These changes ensure the MoveCiBuildsMetadata background migration can process partitions in parallel and performs proper vacuum checks before executing.

--- Before, in the old MR
gitlabhq_dblab=# select id, table_name, job_class_name, job_arguments, status from batched_background_migrations where job_class_name = 'MoveCiBuildsMetadata';
   id    | table_name  |    job_class_name    |      job_arguments      | status
---------+-------------+----------------------+-------------------------+--------
 3000510 | p_ci_builds | MoveCiBuildsMetadata | ["partition_id", [100]] |      1
 3000511 | p_ci_builds | MoveCiBuildsMetadata | ["partition_id", [101]] |      1
 3000512 | p_ci_builds | MoveCiBuildsMetadata | ["partition_id", [102]] |      1
 3000513 | p_ci_builds | MoveCiBuildsMetadata | ["partition_id", [103]] |      1
 3000514 | p_ci_builds | MoveCiBuildsMetadata | ["partition_id", [104]] |      1
 3000515 | p_ci_builds | MoveCiBuildsMetadata | ["partition_id", [105]] |      1
 3000516 | p_ci_builds | MoveCiBuildsMetadata | ["partition_id", [106]] |      1
 3000517 | p_ci_builds | MoveCiBuildsMetadata | ["partition_id", [107]] |      1
(8 rows)

-- Now, in this MR
gitlabhq_dblab=# select id, table_name, job_class_name, job_arguments, status from batched_background_migrations where job_class_name = 'MoveCiBuildsMetadata';
   id    |               table_name                |    job_class_name    |      job_arguments      | status
---------+-----------------------------------------+----------------------+-------------------------+--------
 3000543 | gitlab_partitions_dynamic.ci_builds     | MoveCiBuildsMetadata | ["partition_id", [100]] |      1
 3000544 | gitlab_partitions_dynamic.ci_builds_101 | MoveCiBuildsMetadata | ["partition_id", [101]] |      1
 3000545 | gitlab_partitions_dynamic.ci_builds_102 | MoveCiBuildsMetadata | ["partition_id", [102]] |      1
 3000546 | gitlab_partitions_dynamic.ci_builds_103 | MoveCiBuildsMetadata | ["partition_id", [103]] |      1
 3000547 | gitlab_partitions_dynamic.ci_builds_104 | MoveCiBuildsMetadata | ["partition_id", [104]] |      1
 3000548 | gitlab_partitions_dynamic.ci_builds_105 | MoveCiBuildsMetadata | ["partition_id", [105]] |      1
 3000549 | gitlab_partitions_dynamic.ci_builds_106 | MoveCiBuildsMetadata | ["partition_id", [106]] |      1
 3000550 | gitlab_partitions_dynamic.ci_builds_107 | MoveCiBuildsMetadata | ["partition_id", [107]] |      1
(8 rows)

References

Related to !208674 (merged)

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Marius Bobin

Merge request reports

Loading