Draft: Allow option to do multi node search on zoekt proxy
What does this MR do and why?
The code changes introduce a new search mode called "zoekt_search_proxy" for the Zoekt search engine. This new search mode utilizes a proxy server to distribute search requests across multiple Zoekt nodes, improving performance and scalability.
Note: This is a temporary solution. We ultimately want to go with a gRPC endpoint on a webserver that we manage. This is an iteration to improve performance by offloading the work that is currently done in ruby threads to go concurrency.
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.
- Introduction of zoekt proxy: gitlab-zoekt-indexer!310 (merged)
- Current multi node search in rails using threads: https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/lib/gitlab/search/zoekt/client.rb#L56
- Long term solution: #500087
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.