From 73a83a6e17649d489a5e628844a97327db1e8e2c Mon Sep 17 00:00:00 2001 From: Vasilii Iakliushin Date: Thu, 19 May 2022 10:29:30 +0200 Subject: [PATCH] Switch to `sticky` data consistency for RepositoryUpdateMirrorWorker Contributes to https://gitlab.com/gitlab-org/gitlab/-/issues/362263 **Problem** The worker executes many read SQL queries to the primary database. We prefer to send them to replica instead. **Solution** Use `sticky` data consistency for the worker --- .../delayed_repository_update_mirror_worker.yml | 8 ++++++++ ee/app/workers/repository_update_mirror_worker.rb | 2 +- ee/spec/workers/repository_update_mirror_worker_spec.rb | 5 +++++ 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 config/feature_flags/development/delayed_repository_update_mirror_worker.yml diff --git a/config/feature_flags/development/delayed_repository_update_mirror_worker.yml b/config/feature_flags/development/delayed_repository_update_mirror_worker.yml new file mode 100644 index 00000000000000..0de84c81e1d956 --- /dev/null +++ b/config/feature_flags/development/delayed_repository_update_mirror_worker.yml @@ -0,0 +1,8 @@ +--- +name: delayed_repository_update_mirror_worker +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/87995 +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/362894 +milestone: '15.1' +type: development +group: group::source code +default_enabled: false diff --git a/ee/app/workers/repository_update_mirror_worker.rb b/ee/app/workers/repository_update_mirror_worker.rb index 8a749dad660abd..a75a91d444a657 100644 --- a/ee/app/workers/repository_update_mirror_worker.rb +++ b/ee/app/workers/repository_update_mirror_worker.rb @@ -6,7 +6,7 @@ class RepositoryUpdateMirrorWorker include ApplicationWorker idempotent! - data_consistency :always + data_consistency :sticky, feature_flag: :delayed_repository_update_mirror_worker include ProjectStartImport feature_category :source_code_management diff --git a/ee/spec/workers/repository_update_mirror_worker_spec.rb b/ee/spec/workers/repository_update_mirror_worker_spec.rb index dddc09ad7e6fb8..2b2a17d8c35584 100644 --- a/ee/spec/workers/repository_update_mirror_worker_spec.rb +++ b/ee/spec/workers/repository_update_mirror_worker_spec.rb @@ -14,6 +14,11 @@ allow(worker).to receive(:jid).and_return(jid) end + it_behaves_like 'worker with data consistency', + described_class, + feature_flag: :delayed_repository_update_mirror_worker, + data_consistency: :sticky + it 'sets status as finished when update mirror service executes successfully' do expect_next_instance_of(Projects::UpdateMirrorService) do |instance| expect(instance).to receive(:execute).and_return(status: :success) -- GitLab