Skip to content

Resolve an N+1 in merge request CI variables

Nick Thomas requested to merge 198694-speed-up-new-merge-request-worker into master

What does this MR do?

When building a CI pipeline, variables must be gathered at least once per build, so it's important that the variable declarations ensure any activerecord-dependent data is cached on the first call, to avoid repeated SQL queries.

For this case, present? loads the list of assignees into memory for subsequent calls, while any? issues a simple EXISTS query that is repeated each time.

Screenshots

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • 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

Closes #198694 (closed)

Edited by Nick Thomas

Merge request reports