[Concurrent Segment Search] Isolation between search request for system index, search throttled index and regular index in concurrent search enabled setup #12951
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
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 threadpoolindex_searcher
which is used to actually simulate the search tasks in lucene concurrently whereas thesearch
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:
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.Related component
Search:Performance
Describe alternatives you've considered
No response
Additional context
No response
The text was updated successfully, but these errors were encountered: