Skip to content

Move Project Export of templates into a separate sidekiq queue

What does this MR do?

Related to: #284498 (closed) & #285054 (closed)

This MR creates a separate Template Export worker with a separate project_template_export queue, outside of memory-bound sidekiq shard, in order to help with P1S1 issue where users are not able to create new projects from custom templates (https://docs.gitlab.com/ee/user/group/custom_project_templates.html), or have extreme delays.

This is happening due to group level custom templates using Project Export functionality under the hood, which puts export job in the same queue as the rest of regular export jobs, which can cause delays. Additionally, since export jobs are running in memory-bound shard as well as urgency: throttled (https://docs.gitlab.com/ee/development/sidekiq_style_guide.html#job-urgency). This causes delays to increase even further, or timeout.

Additional information can be found here #284498 (comment 450304300)

After having a chat in slack with scalability group it's been concluded that having Template Exports in catchall shard should not be a problem, given average export duration as well as volume of such requests.

This is a step 1 of several that are going to be done in order to have project creation using group level custom templates run faster.

Screenshots (strongly suggested)

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
Edited by George Koltsov

Merge request reports

Loading