Skip to content

Geo: Preserve "Repository synchronization concurrency limit"

Problem

At the moment, SSF uses files_max_capacity to limit the number of concurrent replication jobs across all replicators.

Including Group wiki repos and Snippet repos.

Soon, Project repos and Project wiki repos will be migrated to use SSF code.

We should use the existing repos_max_capacity setting to manage repos separately from blobs.

Proposal 1

Before projects and wikis are migrated to SSF:

  • Duplicate Geo::RegistrySyncWorker to Geo::RegistryRepositorySyncWorker
  • In Geo::RegistryRepositorySyncWorker, use 1/10 of repos_max_capacity and scope def replicator_classes to include only repository types
  • In Geo::RegistrySyncWorker, scope def replicator_classes to include only blob types
  • Add issue to &4623 (closed) to remember to do the next step "During the migration of projects and wikis" below.

During the migration of projects and wikis:

  • In Geo::RegistryRepositorySyncWorker, use the full repos_max_capacity in #max_capacity when the project and wikis SSF replication feature flag is enabled

Proposal 2 (Less ideal)

During the migration of projects and wikis:

  • In Geo::RegistrySyncWorker, use the full repos_max_capacity in #max_capacity when the project and wikis SSF replication feature flag is enabled
  • Open a follow up issue to respect repo and file concurrency limits properly rather than bunched into one
Edited by Michael Kozono