Geo: Handle repository and wiki sync separately in Geo::ProjectSyncWorker
What does this MR do?
See https://gitlab.com/gitlab-org/gitlab-ee/issues/9446. This is alternative implementation of https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/9338
The intention is to remove repository_sync_due?
and wiki_sync_due?
call from ProjectSyncWorker and add extra options to selectively sync repositories or/and wikis. This effectively takes a decision on what to sync out of Geo::ProjectSyncWorker
class, making its function more straightforward.
This implementation adds one extra query Geo::ProjectRegistry.find_or_initialize_by(project_id: project_id)
per project sync (from a cron job) but it will/should be cached by PG and is not expensive at all. In return, we get a number of benefits. We can selectively sync repo or/and wiki and we can easily implement https://gitlab.com/gitlab-org/gitlab-ee/issues/5348
What are the relevant issue numbers?
closes https://gitlab.com/gitlab-org/gitlab-ee/issues/9446 and https://gitlab.com/gitlab-org/gitlab-ee/issues/9444
Does this MR meet the acceptance criteria?
-
Changelog entry added, if necessary -
Documentation created/updated via this MR -
Documentation reviewed by technical writer or follow-up review issue created -
Tests added for this feature/bug -
Tested in all supported browsers -
Conforms to the code review guidelines -
Conforms to the merge request performance guidelines -
Conforms to the style guides -
Conforms to the database guides -
Link to e2e tests MR added if this MR has Requires e2e tests label. See the Test Planning Process. -
EE specific content should be in the top level /ee
folder -
For a paid feature, have we considered GitLab.com plans, how it works for groups, and is there a design for promoting it to users who aren't on the correct plan? -
Security reports checked/validated by reviewer
Closes #9446 (closed)