Geo: Secondary is proxying Git pulls unnecessarily

Problem

Pulls against a secondary Geo site are being proxied to the primary even when the secondary site is up-to-date.

This can be a significant problem for those who are using Geo secondaries to:

  • offload heavy read activity.
  • cope with low bandwidth between sites

Possible solution

Project replication is handled by ProjectRepositoryRegistry and SSF since 16.3 !125927 (merged).

But our "repository out of date?" logic checks the legacy ProjectRegistry record:

  • https://gitlab.com/gitlab-org/gitlab/-/blob/b363a88fde8bf001df4da25319146d2bffdb313b/ee/lib/ee/gitlab/geo_git_access.rb#L40
  • https://gitlab.com/gitlab-org/gitlab/-/blob/678e5f72ae08b1e04bba272787fd4cab253a4826/ee/app/controllers/ee/repositories/git_http_client_controller.rb#L87
  • https://gitlab.com/gitlab-org/gitlab/-/blob/678e5f72ae08b1e04bba272787fd4cab253a4826/ee/app/controllers/ee/repositories/git_http_client_controller.rb#L211
Edited Sep 14, 2023 by Michael Kozono
Assignee Loading
Time tracking Loading