Add cron worker to automatically rollout zoekt exact code search to paid namespaces
What does this MR do and why?
Duo summary:
This merge request introduces a new Zoekt rollout system for search functionality. It adds a planning service to determine how to distribute search indices across available nodes, a provisioning service to execute the planned changes, and a rollout service to orchestrate the entire process. The changes also include a new worker to periodically run the rollout process, along with associated configuration and feature flag settings. Additionally, there are minor adjustments to existing models and scopes to support these new features. Overall, this update aims to improve the management and distribution of search indices across the system's infrastructure.
This is all behind the feature flag zoekt_rollout_worker
References
Please include cross links to any resources that are relevant to this MR. This will give reviewers and future readers helpful context to give an efficient review of the changes introduced.
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.
Screenshots or screen recordings
Screenshots are required for UI changes, and strongly recommended for all other merge requests.
Before | After |
---|---|
How to set up and validate locally
Numbered steps to set up and validate the change are strongly suggested.
Merge request reports
Activity
assigned to @johnmason
added pipelinetier-1 label
- A deleted user
added backend databasereview pending labels
17 Warnings This merge request is quite big (640 lines changed), please consider splitting it into multiple merge requests. 2de67dad: Commits that change 30 or more lines across at least 3 files should describe these changes in the commit body. For more information, take a look at our Commit message guidelines. 3919b1b6: The commit subject must contain at least 3 words. For more information, take a look at our Commit message guidelines. 1213237b: The commit subject must contain at least 3 words. For more information, take a look at our Commit message guidelines. b8101696: The commit subject must contain at least 3 words. For more information, take a look at our Commit message guidelines. e52e3723: The commit subject must contain at least 3 words. For more information, take a look at our Commit message guidelines. d62b2e68: The commit subject must contain at least 3 words. For more information, take a look at our Commit message guidelines. 42886dd2: Commits that change 30 or more lines across at least 3 files should describe these changes in the commit body. For more information, take a look at our Commit message guidelines. a568df5b: Commits that change 30 or more lines across at least 3 files should describe these changes in the commit body. For more information, take a look at our Commit message guidelines. 479627ec: The commit subject must contain at least 3 words. For more information, take a look at our Commit message guidelines. fe701a71: The commit subject must contain at least 3 words. For more information, take a look at our Commit message guidelines. 8fc3c64b: The commit subject must contain at least 3 words. For more information, take a look at our Commit message guidelines. 8fc3c64b: Commits that change 30 or more lines across at least 3 files should describe these changes in the commit body. For more information, take a look at our Commit message guidelines. 21e71186: The commit subject must contain at least 3 words. For more information, take a look at our Commit message guidelines. cb4270d6: The commit subject must contain at least 3 words. For more information, take a look at our Commit message guidelines. This merge request has more than 20 commits which may cause issues in some of the jobs. If you see errors like missing commits, please consider squashing some commits so it is within 20 commits. This merge request does not refer to an existing milestone. 2 Messages CHANGELOG missing: If this merge request needs a changelog entry, add the
Changelog
trailer to the commit message you want to add to the changelog.If this merge request doesn't need a CHANGELOG entry, feel free to ignore this message.
This merge request adds or changes files that require a review from the Database team. This merge request requires a database review. To make sure these changes are reviewed, take the following steps:
- Ensure the merge request has database and databasereview pending labels. If the merge request modifies database files, Danger will do this for you.
- Prepare your MR for database review according to the docs.
- Assign and mention the database reviewer suggested by Reviewer Roulette.
The following files require a review from the Database team:
ee/app/services/search/zoekt/provisioning_service.rb
Reviewer roulette
Category Reviewer Maintainer backend @minahilnichols
(UTC-5, same timezone as author)
@partiaga
(UTC+11, 16 hours ahead of author)
database @alexpooley
(UTC+8, 13 hours ahead of author)
@Quintasan
(UTC+1, 6 hours ahead of author)
Please refer to documentation page for guidance on how you can benefit from the Reviewer Roulette, or use the GitLab Review Workload Dashboard to find other available reviewers.
If needed, you can retry the
danger-review
job that generated this comment.Generated by
Danger- Resolved by John Mason
@johnmason
- please see the following guidance and update this merge request.1 Error Please add typebug typefeature, or typemaintenance label to this merge request.
- Resolved by John Mason
- Resolved by John Mason
added 2 commits
added 2 commits
- Resolved by John Mason
mentioned in issue gitlab-com/gl-infra/production#18976 (closed)
added 3 commits
added 2 commits
- Resolved by John Mason
- A deleted user
added database label
- Resolved by John Mason
- Resolved by John Mason
- Resolved by John Mason
added 1269 commits
-
2cc93492...eb992def - 1230 commits from branch
master
- eb992def...1c07e5b8 - 29 earlier commits
- 85b0a97e - Add updates for improved planning service
- b3bef764 - Add nil for no upper bound
- 59f887af - Log error if max indices
- c1d6c4c7 - Use configurable max indices per replica
- 8acfca94 - Simplify planning service
- 9e49290c - Allow node dependency injection
- ad67df80 - Add provisioning service changes
- 2de67dad - Add provisioning service changes
- 3087af18 - Update planning service
- bbd048b8 - Update planning service
Toggle commit list-
2cc93492...eb992def - 1230 commits from branch
added 2 commits
mentioned in issue gitlab-com/gl-infra/production#19157 (closed)
mentioned in issue #508836
mentioned in task #515867 (closed)
added 5549 commits
-
d79dcf7d...a4b00fcf - 5499 commits from branch
master
- a4b00fcf...1ada058e - 40 earlier commits
- 97282477 - Update planning service
- 6968a6bb - Update planning service
- 6c729842 - Make pre ready limit an argument
- 138ba375 - Update planning service
- 6e9a3858 - Update planning service: remove sort by repo size
- 01ebb7f6 - Update planning service: remove failures
- 4b2f3b1e - Use default storage bytes for new indices
- 2dc15a09 - Create empty indices
- 9d18102f - Create empty indices
- 30fa0cf7 - Fix the bug of max_indices_per_replica
Toggle commit list-
d79dcf7d...a4b00fcf - 5499 commits from branch
- Resolved by John Mason
- Resolved by John Mason
2 Warnings This merge request is quite big (1276 lines changed), please consider splitting it into multiple merge requests. 3264d80f: Commits that change 30 or more lines across at least 3 files should describe these changes in the commit body. For more information, take a look at our Commit message guidelines. 1 Message CHANGELOG missing: If this merge request needs a changelog entry, add the
Changelog
trailer to the commit message you want to add to the changelog.If this merge request doesn't need a CHANGELOG entry, feel free to ignore this message.
Reviewer roulette
Category Reviewer Maintainer backend @zmartins
(UTC+1, 6 hours ahead of author)
@alejandro
(UTC-5, same timezone as author)
database @acroitor
(UTC+2, 7 hours ahead of author)
@jon_jenkins
(UTC-6, 1 hour behind author)
Please refer to documentation page for guidance on how you can benefit from the Reviewer Roulette, or use the GitLab Review Workload Dashboard to find other available reviewers.
Sidekiq queue changes
This merge request contains changes to Sidekiq queues. Please follow the documentation on changing a queue's urgency.
These queues were added:
cronjob:search_zoekt_rollout
If needed, you can retry the
danger-review
job that generated this comment.Generated by
DangerEdited by ****