Skip to content

Geo: Fix Verification concurrency limit

Michael Kozono requested to merge mk/fix-verification-concurrency-limit into master

What does this MR do and why?

Fix Verification concurrency limit.

We forgot to remove some legacy code when migrating projects and wikis to use the Geo Self-Service Framework.

Currently there are 16 replicators enabled by default:

[51] pry(main)> Gitlab::Geo.verification_enabled_replicator_classes
=> [Geo::LfsObjectReplicator,
 Geo::MergeRequestDiffReplicator,
 Geo::PackageFileReplicator,
 Geo::TerraformStateVersionReplicator,
 Geo::SnippetRepositoryReplicator,
 Geo::GroupWikiRepositoryReplicator,
 Geo::PipelineArtifactReplicator,
 Geo::PagesDeploymentReplicator,
 Geo::UploadReplicator,
 Geo::JobArtifactReplicator,
 Geo::CiSecureFileReplicator,
 Geo::DependencyProxyBlobReplicator,
 Geo::DependencyProxyManifestReplicator,
 Geo::ProjectWikiRepositoryReplicator,
 Geo::DesignManagementRepositoryReplicator,
 Geo::ProjectRepositoryReplicator]
[52] pry(main)> Gitlab::Geo.verification_enabled_replicator_classes.size
=> 16

Verification concurrency limit a.k.a. verification_max_capacity defaults to 100 for new GitLab instances.

Currently, with the bug, we allot up to 100 / 17 = 5 VerificationBatchWorkers per replicator class.

This MR fixes it so there are 100 / 16 = 6.

Some people disable one or a few replicators, so the behavior change may be a bit more impactful.

It's a minor behavior change for most people. Mainly it removes confusing legacy code.

MR acceptance checklist

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

How to set up and validate locally

Numbered steps to set up and validate the change are strongly suggested.

Merge request reports