Skip to content

Refresh only existing MRs on push

Igor Drozdov requested to merge id-refresh-only-existing-mrs into master

What does this MR do?

When n refs are pushed in a single batch, n UpdateMergeRequestsWorker jobs are scheduled: gitlab-com/gl-infra/scalability#259 (comment 314624220)

When one or n new branches are pushed, they are unlikely to have a merge request. In this MR we fetch all the MRs to the pushed changes and schedule UpdateMergeRequestsWorker only for those branches which have a merge request

Database

SELECT merge_requests.source_branch FROM merge_requests WHERE
   merge_requests.source_project_id = 278964 AND (merge_requests.state_id IN (1)) AND merge_requests.source_branch IN 
   (
      'group-export-with-ndjson',
      'revert-13382-use-not-valid-to-immediately',
      'georgekoltsov/add-group-import-state',
      'really-not-a-code-change',
      'msj-jira-docs-fix',
      'docs-mention-ci-skip',
      'new-variables-ui-set-true',
      'qa-shl-fix-add-remove-ci-spec',
      'renovate/gitlab-uisvg',
      'sk/213557-remove-store_mentions',
      'mw-cr-filtered-search-refactor',
      'update-issue-closing-pattern',
      '213334-burnup-chart-data-weights-pd',
      'docs-wiki-activity',
      'prepare-group-tree-saver-to-ndjson',
      'fzimmer-master-patch-77541',
      'docs-aws-remove-warning',
      'prepare-group-tree-restorer-to-ndjson',
      'ag-cycle-time',
      'smh-praefect-dataloss-cmd'
   )

Query plan: https://explain.depesz.com/s/1qcx

SELECT DISTINCT merge_requests.target_branch FROM merge_requests WHERE
   merge_requests.target_project_id = 278964 AND (merge_requests.state_id IN (1)) AND merge_requests.target_branch IN 
   (
      'group-export-with-ndjson',
      'revert-13382-use-not-valid-to-immediately',
      'georgekoltsov/add-group-import-state',
      'really-not-a-code-change',
      'msj-jira-docs-fix',
      'docs-mention-ci-skip',
      'new-variables-ui-set-true',
      'qa-shl-fix-add-remove-ci-spec',
      'renovate/gitlab-uisvg',
      'sk/213557-remove-store_mentions',
      'mw-cr-filtered-search-refactor',
      'update-issue-closing-pattern',
      '213334-burnup-chart-data-weights-pd',
      'docs-wiki-activity',
      'prepare-group-tree-saver-to-ndjson',
      'fzimmer-master-patch-77541',
      'docs-aws-remove-warning',
      'prepare-group-tree-restorer-to-ndjson',
      'ag-cycle-time',
      'smh-praefect-dataloss-cmd',
      'master'
   )

Query plan: https://explain.depesz.com/s/jdcv

Edited by Igor Drozdov

Merge request reports