Skip to content

Backfill projects with CI coverage usage

Erick Bajao requested to merge eb-backfill-ci-feature-usage-for-coverage into master

What does this MR do?

This is Step 3 of #336199 (closed)

Background Migration Details

ci_daily_build_group_report_results as of this writing has around 6_473_759 rows. But not all of these rows will be inserted into the new project_ci_feature_usages table. We just need a combination of project_id and default_branch: true|false per project. Thus the SELECT DISTINCT in the actual background migration. We did not use SELECT DISTINCT in the post migration in order to simplify things and be able to use queue_background_migration_jobs_by_range_at_intervals.

batch size = 10_000 6_473_759 / 10_000 = 647 batches

Estimated times per batch: https://explain-depesz.postgres.ai/s/9A

2 mins delay per batch (safe for the given total time per batch)

647 batches * 2 min per batch = 1_294 mins to run all the scheduled jobs

Please note that project_ci_feature_usages is not being used in any read queries yet.

How to setup and validate locally (strongly suggested)

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

Does this MR contain changes to processing or storing of credentials or tokens, authorization and authentication methods or other items described in the security review guidelines? If not, then delete this Security section.

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team
Edited by Erick Bajao

Merge request reports