Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Concurrent Segment Search] Isolation between search request for system index, search throttled index and regular index in concurrent search enabled setup #12951

Closed
sohami opened this issue Mar 27, 2024 · 1 comment · Fixed by #12954
Assignees
Labels
enhancement Enhancement or improvement to existing feature or request Search:Performance v2.14.0 v3.0.0 Issues and PRs related to version 3.0.0

Comments

@sohami
Copy link
Collaborator

sohami commented Mar 27, 2024

Is your feature request related to a problem? Please describe

In OpenSearch, we have 3 separate threadpools for search traffic "search", "search_throttled", "system_read". These threadpools handles the search requests for different indices. For example: "system_read" is used for the searches on the system index, "search" is used for searches on the regular indices where most of the user workload will be served and "search_throttled" is a mechanism to throttle searches on a specific index and run it at very low TPS. With concurrent segment search, we introduced a new threadpool index_searcher which is used to actually simulate the search tasks in lucene concurrently whereas the search thread waits for all the tasks to complete. However, with this the index_searcher threadpool will be shared for search requests between all the index types i.e. system index, regular index and search throttled index. This is removing the threadpool isolation which was present earlier.

Describe the solution you'd like

With concurrent search enabled clusters, we have 2 options:

  1. [Preferred]: We can keep these isolation and use the index_searcher threadpool to serve requests for indices which are neither marked for search throttled nor system index. We want most of the performance benefits for the regular indices where majority of the search workload will be targeted for. System index is used mostly for internal components and do mostly light weight requests. Similarly for search throttled indices the intention is to not be used for latency sensitive usecase but to keep the tps low and probably for long running requests to avoid impact on critical request path. We can fallback to non-concurrent path for these indices request.
  2. Other option will be to create separate searcher threadpool for these indices as well and use those for concurrently executing the search requests on those indices

Related component

Search:Performance

Describe alternatives you've considered

No response

Additional context

No response

@sohami sohami added enhancement Enhancement or improvement to existing feature or request untriaged labels Mar 27, 2024
@sohami sohami removed the untriaged label Mar 27, 2024
@jed326 jed326 self-assigned this Mar 27, 2024
@jed326
Copy link
Collaborator

jed326 commented Mar 27, 2024

Thanks @sohami, I can take a look into this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Enhancement or improvement to existing feature or request Search:Performance v2.14.0 v3.0.0 Issues and PRs related to version 3.0.0
Projects
Status: Done
Archived in project
Status: Planned work items
Development

Successfully merging a pull request may close this issue.

3 participants