-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
[Discuss] Move concurrent-search out of sandbox plugin to core under feature flag #6859
Comments
@reta @nknize @andrross @anasalkouz - Tagging you folks to get feedback on above |
@sohami Looks like deja vu, the concurrent search was implemented as core feature behind the feature flag but @nknize suggested to move it to sandbox plugin.
The test should be exercising the |
@reta Thanks for the background. Yes unit tests are fine but concurrent search is changing the execution model for search request, so e2e tests will be needed to provide better coverage in my opinion. All the functionality is already in core and plugin is gatekeeping the usage of it which is essentially a feature flag behavior. |
I have no opposition to promoting it from sandbox back to a first class plugin. We started there because the feature flag mechanism wasn't well vetted at the time nor did we have good javadoc annotation guard rails. The gating mechanisms are pretty well vetted at this point from features like segrep and others. Do we have any usage feedback or benchmarks? I'm pretty confident it's a value add but it would be good to have some updated usage and performance data to substantiate the promotion. This would be a first example of a feature promoting from sandbox. Maybe you can propose a timeline to move from feature flag to GA? What does that look like to you? One minor? Maybe we get this on the project board and target a GA release? |
Please make sure to follow the best practices of the feature flag: https://github.com/opensearch-project/.github/blob/main/CONTRIBUTING.md#experimental-features |
@reta & @nknize Thanks for your inputs. Yes the proposal is to move to core behind a feature flag. This will also help to develop missing pieces and iterate faster similar to other core features like segrep.
I am planning to run the benchmark once we have support for aggs and will share the results. But @reta did shared the initial benchmark with his PR. Ref here
As far as timeline is considered for GA for now I can target it for June mid/end which probably will map to 3.x based on the project board here. I have added the list of things that needs to be addressed for GA in this issue in addition to what is tracked here. |
Is your feature request related to a problem? Please describe.
Currently
concurrent-search
is implemented as a sandbox plugin which acts as a provider for 1)QueryPhaseSearcher
and 2) Threadpool to run segment level search concurrently. All the logic to integrate or implement LuceneCollectionManager
interface across different operators (likeMinScore, TopN, EarlyTermination, etc
) is part of the core. Plugin provides a way create the corresponding searcher instance to perform search via collection manager. However, I think this should be a core feature instead because of following reasons and wanted to discuss and get community feedback on the same.When all the gaps with concurrent search is addressed it can become default mechanism in the core to perform searches on segment either sequentially or concurrently. Until then it can be controlled by a feature flag mechanism in the core to use existing flow or the concurrent search flow. I don't foresee multiple different implementation of concurrent search itself which requires it to be plugin. We can control the behavior of concurrent search via below mechanisms. The last 2 can be exposed in a pluggable way with defaults in core.
IndexSearcher
which will determine the concurrencyWith support in core all the existing search related tests (specially ITs) covering all the different scenarios for the supported DSL can be reused. This is future proof as any new addition to the search DSL will be tested out of the box. The
OpenSearchIntegTestCase
and other base class can provide a mechanism to control enabling/disabling search behavior to provide coverage for concurrent and sequential search path as the final result should be same.This will also help to have coverage for all the other search related plugins like
GeospatialPlugin
, etc. Plugins specific feature tests will remain in plugin and the test framework can provide mechanism to enable/disable concurrent search.Describe the solution you'd like
To move concurrent-search to core behind the feature flag until the feature is complete and ready to be released
Additional context
sandbox
pluginThe text was updated successfully, but these errors were encountered: