Skip to content

Conversation

Gankris96
Copy link
Contributor

Description

Adds documentation for concurrent search

  1. index level slice count setting change - Add support for index level slice count setting OpenSearch#15336
  2. pluggable deciders for concurrent search with new mode setting - Pluggable deciders for concurrent search OpenSearch#15363 , Provide factory for pluggable deciders OpenSearch#15713

Issues Resolved

Resolves #8068

Version

2.17

Frontend features

If you're submitting documentation for an OpenSearch Dashboards feature, add a video that shows how a user will interact with the UI step by step. A voiceover is optional.

Checklist

  • By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and subject to the Developers Certificate of Origin.
    For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Copy link

github-actions bot commented Sep 5, 2024

Thank you for submitting your PR. The PR states are In progress (or Draft) -> Tech review -> Doc review -> Editorial review -> Merged.

Before you submit your PR for doc review, make sure the content is technically accurate. If you need help finding a tech reviewer, tag a maintainer.

When you're ready for doc review, tag the assignee of this PR. The doc reviewer may push edits to the PR directly or leave comments and editorial suggestions for you to address (let us know in a comment if you have a preference). The doc reviewer will arrange for an editorial review.

@Gankris96
Copy link
Contributor Author

@kolchfa-aws / @Naarcha-AWS can you please take a look

@kolchfa-aws
Copy link
Collaborator

@Gankris96 Thank you, will do!

@Gankris96 Gankris96 force-pushed the main branch 4 times, most recently from 8d61a34 to be7c9b2 Compare September 6, 2024 00:10
Signed-off-by: Ganesh Ramadurai <[email protected]>
@jed326 jed326 added the v2.17.0 label Sep 6, 2024
@kolchfa-aws kolchfa-aws added the release-notes PR: Include this PR in the automated release notes label Sep 9, 2024
Copy link
Collaborator

@kolchfa-aws kolchfa-aws left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you, @Gankris96! Please see my comments and suggestions and let me know if you have any questions. The Developer information section was first added when concurrent segment search was experimental. Now, I think it's better if we move it to the GitHub repo docs and link it from here. The doc site contains user documentation. @sohami Let me know what you think.

@kolchfa-aws
Copy link
Collaborator

@Gankris96 Also, is this feature experimental for 2.17?

@Gankris96
Copy link
Contributor Author

@Gankris96 Also, is this feature experimental for 2.17?

It's not experimental. Users will be allowed to change the setting and directly start using this feature. There is no specific feature_flag as such that they need to update to be able to use this, if that's what you're asking.

@Gankris96
Copy link
Contributor Author

Thank you, @Gankris96! Please see my comments and suggestions and let me know if you have any questions. The Developer information section was first added when concurrent segment search was experimental. Now, I think it's better if we move it to the GitHub repo docs and link it from here. The doc site contains user documentation. @sohami Let me know what you think.

Do you mean, we should remove it from the documentation website? What do you mean by GitHub repo docs? You mean like under Contributing section ?

@kolchfa-aws
Copy link
Collaborator

@Gankris96 Yes, have it as part of (probably) DEVELOPER_GUIDE on GitHub directly in the repo. This is where developers will look for it, generally. Our site only contains information about using OpenSearch, not extending it (or anything that relates to its internal structure).

@jed326
Copy link
Contributor

jed326 commented Sep 10, 2024

@Gankris96 Yes, have it as part of (probably) DEVELOPER_GUIDE on GitHub directly in the repo. This is where developers will look for it, generally. Our site only contains information about using OpenSearch, not extending it (or anything that relates to its internal structure).

@kolchfa-aws This probably deserves a separate issue for deeper discussion. The information we're talking about here under Developer Information has to do with caveats related to implementing a SearchPlugin. I don't see very much information about plugin implementation details in the existing DEVELOPER_GUIDE.md and in fact we don't really have a ton of docs on how to create a plugin in general. For example, elastic has this page: https://www.elastic.co/guide/en/elasticsearch/plugins/current/creating-classic-plugins.html.

Coming at it from a different direction, when we say using concurrent segment search, one way is interacting through APIs and enabling cluster settings, but another way of using the feature is, as a plugin developer, knowing which of these interfaces you need to implement in order to use the feature.

@kolchfa-aws
Copy link
Collaborator

@jed326 Agreed, we should have more documentation for plugin developers. However, I think, developing a plugin does not fall under using OpenSearch. That's why this section seems out of place here. We should have this documentation in the repo. For example, the Developer Guide in the opensearch-sdk-java repo has information about building your own extension.

Gankris96 and others added 2 commits September 10, 2024 11:35
Co-authored-by: kolchfa-aws <[email protected]>
Signed-off-by: Ganesh Krishna Ramadurai <[email protected]>
Copy link
Collaborator

@natebower natebower left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Gankris96 @kolchfa-aws Please see my comments and changes and let me know if you have any questions. Thanks!


### AggregatorFactory changes

Because of implementation details, not all aggregator types can support concurrent segment search. To accommodate this, we have introduced a [`supportsConcurrentSegmentSearch()`](https://github.com/opensearch-project/OpenSearch/blob/2.x/server/src/main/java/org/opensearch/search/aggregations/AggregatorFactory.java#L123) method in the `AggregatorFactory` class to indicate whether a given aggregation type supports concurrent segment search. By default, this method returns `false`. Any aggregator that needs to support concurrent segment search must override this method in its own factory implementation.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Because of the implementation configuration"?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

@jed326 jed326 Sep 11, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMO we probably don't need to make changes to this paragraph since it's already published, I think it's just showing up in this PR because it was moved, wdyt @kolchfa-aws @natebower ?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jed326 I think "implementation details" reads better because it's commonly used.

@jed326
Copy link
Contributor

jed326 commented Sep 11, 2024

@jed326 Agreed, we should have more documentation for plugin developers. However, I think, developing a plugin does not fall under using OpenSearch. That's why this section seems out of place here. We should have this documentation in the repo. For example, the Developer Guide in the opensearch-sdk-java repo has information about building your own extension.

Thanks @kolchfa-aws , I'll create a separate issue to follow up on this since I think we should spend a little more time in the core repo writing out search plugin documentation.

Copy link
Collaborator

@kolchfa-aws kolchfa-aws left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thanks, @Gankris96 and @jed326! Ready to merge.

@kolchfa-aws kolchfa-aws merged commit 1c3e436 into opensearch-project:main Sep 11, 2024
6 checks passed
epugh pushed a commit to o19s/documentation-website that referenced this pull request Sep 12, 2024
* Doc update for concurrent search

Signed-off-by: Ganesh Ramadurai <[email protected]>

* Apply suggestions from code review

Co-authored-by: kolchfa-aws <[email protected]>
Signed-off-by: Ganesh Krishna Ramadurai <[email protected]>

* Apply suggestions from code review

Co-authored-by: Nathan Bower <[email protected]>
Signed-off-by: kolchfa-aws <[email protected]>

---------

Signed-off-by: Ganesh Ramadurai <[email protected]>
Signed-off-by: Ganesh Krishna Ramadurai <[email protected]>
Signed-off-by: kolchfa-aws <[email protected]>
Co-authored-by: kolchfa-aws <[email protected]>
Co-authored-by: Nathan Bower <[email protected]>
Signed-off-by: Eric Pugh <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release-notes PR: Include this PR in the automated release notes v2.17.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[DOC] Document support for index level max_slice_count setting and search.concurrent_segment_search.mode setting

5 participants