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

Update AggregatorFactory to provide a method to indicate if it supports concurrent search #9469

Merged
merged 5 commits into from
Aug 25, 2023

Conversation

jed326
Copy link
Collaborator

@jed326 jed326 commented Aug 21, 2023

Also refactored parent-join search ITs to support concurrent search parameterization and introduced a new test to cover concurrent search failures.

Description

Some types of aggregations, especially those in custom search plugins, may be unable to utilize concurrent segment search due to their internal implementation. This setting provides a way to disable concurrent segment search when certain types of aggregations are used.

For the newly added tests, both of these tests will actually pass with concurrent search enabled due to problem 2 here #9316 (comment). However, once problem 2 is fixed these tests will catch the issue in problem 1.

Related Issues

Resolves #9446
Relates #9316

Check List

  • New functionality includes testing.
    • All tests pass
  • New functionality has been documented.
    • New functionality has javadoc added
  • Commits are signed per the DCO using --signoff
  • Commit changes are listed out in CHANGELOG.md file (See: Changelog)

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

@github-actions
Copy link
Contributor

Gradle Check (Jenkins) Run Completed with:

@github-actions
Copy link
Contributor

Gradle Check (Jenkins) Run Completed with:

@opensearch-trigger-bot
Copy link
Contributor

Compatibility status:

Checks if related components are compatible with change 61c5f17

Incompatible components

Incompatible components: [https://github.com/opensearch-project/index-management.git, https://github.com/opensearch-project/notifications.git, https://github.com/opensearch-project/asynchronous-search.git, https://github.com/opensearch-project/security-analytics.git]

Skipped components

Compatible components

Compatible components: [https://github.com/opensearch-project/security.git, https://github.com/opensearch-project/job-scheduler.git, https://github.com/opensearch-project/sql.git, https://github.com/opensearch-project/k-nn.git, https://github.com/opensearch-project/observability.git, https://github.com/opensearch-project/cross-cluster-replication.git, https://github.com/opensearch-project/performance-analyzer.git, https://github.com/opensearch-project/performance-analyzer-rca.git, https://github.com/opensearch-project/ml-commons.git, https://github.com/opensearch-project/geospatial.git, https://github.com/opensearch-project/alerting.git, https://github.com/opensearch-project/anomaly-detection.git, https://github.com/opensearch-project/neural-search.git, https://github.com/opensearch-project/common-utils.git, https://github.com/opensearch-project/opensearch-oci-object-storage.git, https://github.com/opensearch-project/reporting.git]

@jed326
Copy link
Collaborator Author

jed326 commented Aug 22, 2023

@reta @sohami opened a PR for #9446, could you please help review? Thanks!

@github-actions
Copy link
Contributor

Gradle Check (Jenkins) Run Completed with:

@github-actions
Copy link
Contributor

Gradle Check (Jenkins) Run Completed with:

Signed-off-by: Jay Deng <jayd0104@gmail.com>
Signed-off-by: Jay Deng <jayd0104@gmail.com>
@github-actions
Copy link
Contributor

Compatibility status:

Checks if related components are compatible with change f860d16

Incompatible components

Incompatible components: [https://github.com/opensearch-project/index-management.git, https://github.com/opensearch-project/asynchronous-search.git]

Skipped components

Compatible components

Compatible components: [https://github.com/opensearch-project/security.git, https://github.com/opensearch-project/alerting.git, https://github.com/opensearch-project/anomaly-detection.git, https://github.com/opensearch-project/sql.git, https://github.com/opensearch-project/job-scheduler.git, https://github.com/opensearch-project/observability.git, https://github.com/opensearch-project/k-nn.git, https://github.com/opensearch-project/common-utils.git, https://github.com/opensearch-project/reporting.git, https://github.com/opensearch-project/cross-cluster-replication.git, https://github.com/opensearch-project/geospatial.git, https://github.com/opensearch-project/performance-analyzer.git, https://github.com/opensearch-project/ml-commons.git, https://github.com/opensearch-project/notifications.git, https://github.com/opensearch-project/performance-analyzer-rca.git, https://github.com/opensearch-project/neural-search.git, https://github.com/opensearch-project/security-analytics.git, https://github.com/opensearch-project/opensearch-oci-object-storage.git]

@github-actions
Copy link
Contributor

Compatibility status:

Checks if related components are compatible with change e0daaff

Incompatible components

Incompatible components: [https://github.com/opensearch-project/index-management.git, https://github.com/opensearch-project/asynchronous-search.git]

Skipped components

Compatible components

Compatible components: [https://github.com/opensearch-project/security.git, https://github.com/opensearch-project/sql.git, https://github.com/opensearch-project/job-scheduler.git, https://github.com/opensearch-project/k-nn.git, https://github.com/opensearch-project/observability.git, https://github.com/opensearch-project/cross-cluster-replication.git, https://github.com/opensearch-project/performance-analyzer.git, https://github.com/opensearch-project/performance-analyzer-rca.git, https://github.com/opensearch-project/ml-commons.git, https://github.com/opensearch-project/geospatial.git, https://github.com/opensearch-project/alerting.git, https://github.com/opensearch-project/notifications.git, https://github.com/opensearch-project/neural-search.git, https://github.com/opensearch-project/anomaly-detection.git, https://github.com/opensearch-project/security-analytics.git, https://github.com/opensearch-project/common-utils.git, https://github.com/opensearch-project/opensearch-oci-object-storage.git, https://github.com/opensearch-project/reporting.git]

@github-actions
Copy link
Contributor

Gradle Check (Jenkins) Run Completed with:

@github-actions
Copy link
Contributor

Gradle Check (Jenkins) Run Completed with:

  • RESULT: UNSTABLE ❕
  • TEST FAILURES:
      1 org.opensearch.repositories.azure.AzureBlobContainerRetriesTests.testWriteLargeBlob

@reta reta merged commit ae0c9bd into opensearch-project:main Aug 25, 2023
11 of 12 checks passed
@reta reta added the backport 2.x Backport to 2.x branch label Aug 25, 2023
@opensearch-trigger-bot
Copy link
Contributor

The backport to 2.x failed:

The process '/usr/bin/git' failed with exit code 128

To backport manually, run these commands in your terminal:

# Navigate to the root of your repository
cd $(git rev-parse --show-toplevel)
# Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add ../.worktrees/OpenSearch/backport-2.x 2.x
# Navigate to the new working tree
pushd ../.worktrees/OpenSearch/backport-2.x
# Create a new branch
git switch --create backport/backport-9469-to-2.x
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x --mainline 1 ae0c9bd74d2760e43e52234212f03e9146061522
# Push it to GitHub
git push --set-upstream origin backport/backport-9469-to-2.x
# Go back to the original working tree
popd
# Delete the working tree
git worktree remove ../.worktrees/OpenSearch/backport-2.x

Then, create a pull request where the base branch is 2.x and the compare/head branch is backport/backport-9469-to-2.x.

@reta
Copy link
Collaborator

reta commented Aug 25, 2023

@jed326 please send manual backport to 2.x, thank you

jed326 added a commit to jed326/OpenSearch that referenced this pull request Aug 25, 2023
…ts concurrent search (opensearch-project#9469)

* Parameterize parent-join search tests and add coverage for sparse slice case

Signed-off-by: Jay Deng <jayd0104@gmail.com>

* Separate request-based and settings-based concurrent segment search controls and introduce AggregatorFactory method to determine concurrent search support

Signed-off-by: Jay Deng <jayd0104@gmail.com>

* Add supportsConcurrentSegmentSearch override for all AggregatorFactory concrete classes

Signed-off-by: Jay Deng <jayd0104@gmail.com>

* Addressing feedback

Signed-off-by: Jay Deng <jayd0104@gmail.com>

---------

Signed-off-by: Jay Deng <jayd0104@gmail.com>
jed326 added a commit to jed326/OpenSearch that referenced this pull request Aug 25, 2023
…ts concurrent search (opensearch-project#9469)

* Parameterize parent-join search tests and add coverage for sparse slice case

Signed-off-by: Jay Deng <jayd0104@gmail.com>

* Separate request-based and settings-based concurrent segment search controls and introduce AggregatorFactory method to determine concurrent search support

Signed-off-by: Jay Deng <jayd0104@gmail.com>

* Add supportsConcurrentSegmentSearch override for all AggregatorFactory concrete classes

Signed-off-by: Jay Deng <jayd0104@gmail.com>

* Addressing feedback

Signed-off-by: Jay Deng <jayd0104@gmail.com>

---------

Signed-off-by: Jay Deng <jayd0104@gmail.com>
Gaganjuneja pushed a commit to Gaganjuneja/OpenSearch that referenced this pull request Aug 28, 2023
…ts concurrent search (opensearch-project#9469)

* Parameterize parent-join search tests and add coverage for sparse slice case

Signed-off-by: Jay Deng <jayd0104@gmail.com>

* Separate request-based and settings-based concurrent segment search controls and introduce AggregatorFactory method to determine concurrent search support

Signed-off-by: Jay Deng <jayd0104@gmail.com>

* Add supportsConcurrentSegmentSearch override for all AggregatorFactory concrete classes

Signed-off-by: Jay Deng <jayd0104@gmail.com>

* Addressing feedback

Signed-off-by: Jay Deng <jayd0104@gmail.com>

---------

Signed-off-by: Jay Deng <jayd0104@gmail.com>
Gaganjuneja pushed a commit to Gaganjuneja/OpenSearch that referenced this pull request Aug 28, 2023
…ts concurrent search (opensearch-project#9469)

* Parameterize parent-join search tests and add coverage for sparse slice case

Signed-off-by: Jay Deng <jayd0104@gmail.com>

* Separate request-based and settings-based concurrent segment search controls and introduce AggregatorFactory method to determine concurrent search support

Signed-off-by: Jay Deng <jayd0104@gmail.com>

* Add supportsConcurrentSegmentSearch override for all AggregatorFactory concrete classes

Signed-off-by: Jay Deng <jayd0104@gmail.com>

* Addressing feedback

Signed-off-by: Jay Deng <jayd0104@gmail.com>

---------

Signed-off-by: Jay Deng <jayd0104@gmail.com>
Signed-off-by: Gagan Juneja <gjjuneja@amazon.com>
reta pushed a commit that referenced this pull request Aug 28, 2023
…ts concurrent search (#9469) (#9550)

* Parameterize parent-join search tests and add coverage for sparse slice case



* Separate request-based and settings-based concurrent segment search controls and introduce AggregatorFactory method to determine concurrent search support



* Add supportsConcurrentSegmentSearch override for all AggregatorFactory concrete classes



* Addressing feedback



---------

Signed-off-by: Jay Deng <jayd0104@gmail.com>
kkmr pushed a commit to kkmr/OpenSearch that referenced this pull request Aug 28, 2023
…ts concurrent search (opensearch-project#9469)

* Parameterize parent-join search tests and add coverage for sparse slice case

Signed-off-by: Jay Deng <jayd0104@gmail.com>

* Separate request-based and settings-based concurrent segment search controls and introduce AggregatorFactory method to determine concurrent search support

Signed-off-by: Jay Deng <jayd0104@gmail.com>

* Add supportsConcurrentSegmentSearch override for all AggregatorFactory concrete classes

Signed-off-by: Jay Deng <jayd0104@gmail.com>

* Addressing feedback

Signed-off-by: Jay Deng <jayd0104@gmail.com>

---------

Signed-off-by: Jay Deng <jayd0104@gmail.com>
Signed-off-by: Kiran Reddy <kkreddy@amazon.com>
kaushalmahi12 pushed a commit to kaushalmahi12/OpenSearch that referenced this pull request Sep 12, 2023
…ts concurrent search (opensearch-project#9469)

* Parameterize parent-join search tests and add coverage for sparse slice case

Signed-off-by: Jay Deng <jayd0104@gmail.com>

* Separate request-based and settings-based concurrent segment search controls and introduce AggregatorFactory method to determine concurrent search support

Signed-off-by: Jay Deng <jayd0104@gmail.com>

* Add supportsConcurrentSegmentSearch override for all AggregatorFactory concrete classes

Signed-off-by: Jay Deng <jayd0104@gmail.com>

* Addressing feedback

Signed-off-by: Jay Deng <jayd0104@gmail.com>

---------

Signed-off-by: Jay Deng <jayd0104@gmail.com>
Signed-off-by: Kaushal Kumar <ravi.kaushal97@gmail.com>
@jed326 jed326 deleted the agg-settings branch September 13, 2023 19:10
brusic pushed a commit to brusic/OpenSearch that referenced this pull request Sep 25, 2023
…ts concurrent search (opensearch-project#9469)

* Parameterize parent-join search tests and add coverage for sparse slice case

Signed-off-by: Jay Deng <jayd0104@gmail.com>

* Separate request-based and settings-based concurrent segment search controls and introduce AggregatorFactory method to determine concurrent search support

Signed-off-by: Jay Deng <jayd0104@gmail.com>

* Add supportsConcurrentSegmentSearch override for all AggregatorFactory concrete classes

Signed-off-by: Jay Deng <jayd0104@gmail.com>

* Addressing feedback

Signed-off-by: Jay Deng <jayd0104@gmail.com>

---------

Signed-off-by: Jay Deng <jayd0104@gmail.com>
Signed-off-by: Ivan Brusic <ivan.brusic@flocksafety.com>
shiv0408 pushed a commit to Gaurav614/OpenSearch that referenced this pull request Apr 25, 2024
…ts concurrent search (opensearch-project#9469)

* Parameterize parent-join search tests and add coverage for sparse slice case

Signed-off-by: Jay Deng <jayd0104@gmail.com>

* Separate request-based and settings-based concurrent segment search controls and introduce AggregatorFactory method to determine concurrent search support

Signed-off-by: Jay Deng <jayd0104@gmail.com>

* Add supportsConcurrentSegmentSearch override for all AggregatorFactory concrete classes

Signed-off-by: Jay Deng <jayd0104@gmail.com>

* Addressing feedback

Signed-off-by: Jay Deng <jayd0104@gmail.com>

---------

Signed-off-by: Jay Deng <jayd0104@gmail.com>
Signed-off-by: Shivansh Arora <hishiv@amazon.com>
@sohami sohami mentioned this pull request May 21, 2024
9 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport 2.x Backport to 2.x branch backport-failed
Projects
None yet
3 participants