Skip to content

Commit

Permalink
Add queryGroupId to search workload tasks at co-ordinator and data no…
Browse files Browse the repository at this point in the history
…de level (#14708)

* add logic to add headers to Task

Signed-off-by: Kaushal Kumar <[email protected]>

* add logic to add queryGroupId to task headers

Signed-off-by: Kaushal Kumar <[email protected]>

* remove redundant code

Signed-off-by: Kaushal Kumar <[email protected]>

* add changelog entry

Signed-off-by: Kaushal Kumar <[email protected]>

* address comments

Signed-off-by: Kaushal Kumar <[email protected]>

* fix precommit

Signed-off-by: Kaushal Kumar <[email protected]>

* Add UTs for RemoteIndexMetadataManager (#14660)

Signed-off-by: Shivansh Arora <[email protected]>
Co-authored-by: Arpit-Bandejiya <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Fix match_phrase_prefix_query not working on text field with multiple values and index_prefixes (#10959)

* Fix match_phrase_prefix_query not working on text field with multiple values and index_prefixes
Signed-off-by: Gao Binlong <[email protected]>

* Add more test

Signed-off-by: Gao Binlong <[email protected]>

* modify change log

Signed-off-by: Gao Binlong <[email protected]>

* Fix test failure

Signed-off-by: Gao Binlong <[email protected]>

* Change the indexAnalyzer used by prefix field

Signed-off-by: Gao Binlong <[email protected]>

* Skip old version for yaml test

Signed-off-by: Gao Binlong <[email protected]>

* Optimize some code

Signed-off-by: Gao Binlong <[email protected]>

* Fix test failure

Signed-off-by: Gao Binlong <[email protected]>

* Modify yaml test description

Signed-off-by: Gao Binlong <[email protected]>

* Remove the name parameter for setAnalyzer()

Signed-off-by: Gao Binlong <[email protected]>

---------

Signed-off-by: Gao Binlong <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Offline calculation of total shard per node and caching it for weight calculation inside LocalShardBalancer (#14675)

Signed-off-by: RS146BIJAY <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* [bug fix] validate lower bound for top n size (#14587)

Signed-off-by: Chenyang Ji <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Create SystemIndexRegistry with helper method matchesSystemIndex (#14415)

* Create new extension point in SystemIndexPlugin for a single plugin to get registered system indices

Signed-off-by: Craig Perkins <[email protected]>

* Add to CHANGELOG

Signed-off-by: Craig Perkins <[email protected]>

* WIP on system indices from IndexNameExpressionResolver

Signed-off-by: Craig Perkins <[email protected]>

* Add test in IndexNameExpressionResolverTests

Signed-off-by: Craig Perkins <[email protected]>

* Remove changes in SystemIndexPlugin

Signed-off-by: Craig Perkins <[email protected]>

* Add method in IndexNameExpressionResolver to get matching system indices

Signed-off-by: Craig Perkins <[email protected]>

* Show how resolver can be chained to get system indices

Signed-off-by: Craig Perkins <[email protected]>

* Fix forbiddenApis check

Signed-off-by: Craig Perkins <[email protected]>

* Update CHANGELOG

Signed-off-by: Craig Perkins <[email protected]>

* Make SystemIndices internal

Signed-off-by: Craig Perkins <[email protected]>

* Remove unneeded changes

Signed-off-by: Craig Perkins <[email protected]>

* Fix CI failures

Signed-off-by: Craig Perkins <[email protected]>

* Fix precommit errors

Signed-off-by: Craig Perkins <[email protected]>

* Use Regex instead of WildcardMatcher

Signed-off-by: Craig Perkins <[email protected]>

* Address code review feedback

Signed-off-by: Craig Perkins <[email protected]>

* Allow caller to pass index expressions

Signed-off-by: Craig Perkins <[email protected]>

* Create SystemIndexRegistry

Signed-off-by: Craig Perkins <[email protected]>

* Update CHANGELOG

Signed-off-by: Craig Perkins <[email protected]>

* Remove singleton limitation

Signed-off-by: Craig Perkins <[email protected]>

* Add javadoc

Signed-off-by: Craig Perkins <[email protected]>

* Add @experimentalapi annotation

Signed-off-by: Craig Perkins <[email protected]>

---------

Signed-off-by: Craig Perkins <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Refactor Grok validate pattern to iterative approach (#14206)

* grok validate patterns recusrion to iterative

Signed-off-by: Sandesh Kumar <[email protected]>

* Add max depth in resolving a pattern to avoid OOM

Signed-off-by: Sandesh Kumar <[email protected]>

* change path from deque to arraylist

Signed-off-by: Sandesh Kumar <[email protected]>

* rename queue to stack

Signed-off-by: Sandesh Kumar <[email protected]>

* Change max depth to 500

Signed-off-by: Sandesh Kumar <[email protected]>

* typo originPatternName fix

Signed-off-by: Sandesh Kumar <[email protected]>

* spotless

Signed-off-by: Sandesh Kumar <[email protected]>

---------

Signed-off-by: Sandesh Kumar <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Bump opentelemetry from 1.39.0 to 1.40.0 (#14674)

Signed-off-by: Andriy Redko <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Bump jackson from 2.17.1 to 2.17.2 (#14687)

Signed-off-by: Andriy Redko <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Add release notes for release 1.3.18 (#14699)

Signed-off-by: Zelin Hao <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Bump reactor from 3.5.19 to 3.5.20 (#14697)

Signed-off-by: Andriy Redko <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Add unit tests for read flow of RemoteClusterStateService and bug fix for transient settings (#14476)

Signed-off-by: Shivansh Arora <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Update version check for the bug fix of match_phrase_prefix_query not working on text field with multiple values and index_prefixes (#14703)

Signed-off-by: Gao Binlong <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Remove unnecessary cast to int from test (#14696)

Signed-off-by: Lukáš Vlček <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* print reason why parent task was cancelled (#14604)

Signed-off-by: kkewwei <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Use set of shard routing for shard in unassigned shard batch check. (#14533)

Signed-off-by: Swetha Guptha <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Add versioning for UploadedIndexMetadata (#14677)

* Add versioning for UploadedIndexMetadata
* Handle componentPrefix for backward compatibility

Signed-off-by: Sooraj Sinha <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Fix: update help output for _cat (#14722)

* fixed help output for _cat

Signed-off-by: ahmedsobeh <[email protected]>

* updated changelog

Signed-off-by: ahmedsobeh <[email protected]>

* updated changelog

Signed-off-by: ahmedsobeh <[email protected]>

---------

Signed-off-by: ahmedsobeh <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Fix hdfs-fixture kerb-admin & hadoop-minicluster dependencies are not being updated / false positive reports on CVEs (#14729)

Signed-off-by: Andriy Redko <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Update to Gradle 8.9 (#14574)

Signed-off-by: Andriy Redko <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Fix hdfs-fixture hadoop-minicluster dependencies are not being updated / false positive reports on CVEs (#14732)

Signed-off-by: Andriy Redko <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Add `strict_allow_templates` dynamic mapping option (#14555)

* The dynamic mapping parameter supports strict_allow_templates

Signed-off-by: Gao Binlong <[email protected]>

* Modify change log

Signed-off-by: Gao Binlong <[email protected]>

* Modify skip version in yml test file

Signed-off-by: Gao Binlong <[email protected]>

* Refactor some code

Signed-off-by: Gao Binlong <[email protected]>

* Keep the old methods

Signed-off-by: Gao Binlong <[email protected]>

* change public to private

Signed-off-by: Gao Binlong <[email protected]>

* Optimize some code

Signed-off-by: Gao Binlong <[email protected]>

* Do not override toString method for Dynamic

Signed-off-by: Gao Binlong <[email protected]>

* Optimize some code and modify the changelog

Signed-off-by: Gao Binlong <[email protected]>

---------

Signed-off-by: Gao Binlong <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Bump net.minidev:json-smart from 2.5.0 to 2.5.1 in /plugins/repository-azure (#14748)

* Bump net.minidev:json-smart in /plugins/repository-azure

Bumps [net.minidev:json-smart](https://github.com/netplex/json-smart-v2) from 2.5.0 to 2.5.1.
- [Release notes](https://github.com/netplex/json-smart-v2/releases)
- [Commits](netplex/json-smart-v2@2.5.0...2.5.1)

---
updated-dependencies:
- dependency-name: net.minidev:json-smart
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* Updating SHAs

Signed-off-by: dependabot[bot] <[email protected]>

* Update changelog

Signed-off-by: dependabot[bot] <[email protected]>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <dependabot[bot]@users.noreply.github.com>
Signed-off-by: Kaushal Kumar <[email protected]>

* remove query insights plugin from core (#14743)

Signed-off-by: Chenyang Ji <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Add `strict_allow_templates` dynamic mapping option (#14555) (#14737) (#14742)

* The dynamic mapping parameter supports strict_allow_templates

* Modify change log

* Modify skip version in yml test file

* Refactor some code

* Keep the old methods

* change public to private

* Optimize some code

* Do not override toString method for Dynamic

* Optimize some code and modify the changelog

---------

(cherry picked from commit 6b8b3ef)

Signed-off-by: Gao Binlong <[email protected]>
Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Signed-off-by: Andriy Redko <[email protected]>
Co-authored-by: opensearch-trigger-bot[bot] <98922864+opensearch-trigger-bot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Signed-off-by: Kaushal Kumar <[email protected]>

* Fix create or update alias API doesn't throw exception for unsupported parameters (#14719)

* Fix create or update alias API doesn't throw exception for unsupported parameters

Signed-off-by: Gao Binlong <[email protected]>

* Update version check in yml test

Signed-off-by: Gao Binlong <[email protected]>

* modify change log

Signed-off-by: Gao Binlong <[email protected]>

---------

Signed-off-by: Gao Binlong <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Remove query categorization from core (#14759)

* Remove query categorization from core

Signed-off-by: Siddhant Deshmukh <[email protected]>

* Add changelog

Signed-off-by: Siddhant Deshmukh <[email protected]>

* Trigger Build

Signed-off-by: Siddhant Deshmukh <[email protected]>

---------

Signed-off-by: Siddhant Deshmukh <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Add changes to propagate queryGroupId across child requests and nodes (#14614)

* add query group header propagator

Signed-off-by: Kaushal Kumar <[email protected]>

* apply spotless check

Signed-off-by: Kaushal Kumar <[email protected]>

* add new propagator in ThreadContext

Signed-off-by: Kaushal Kumar <[email protected]>

* spotlessApply

Signed-off-by: Kaushal Kumar <[email protected]>

* address comments

Signed-off-by: Kaushal Kumar <[email protected]>

* Bump com.microsoft.azure:msal4j from 1.15.1 to 1.16.0 in /plugins/repository-azure (#14610)

* Bump com.microsoft.azure:msal4j in /plugins/repository-azure

Bumps [com.microsoft.azure:msal4j](https://github.com/AzureAD/microsoft-authentication-library-for-java) from 1.15.1 to 1.16.0.
- [Release notes](https://github.com/AzureAD/microsoft-authentication-library-for-java/releases)
- [Changelog](https://github.com/AzureAD/microsoft-authentication-library-for-java/blob/dev/changelog.txt)
- [Commits](AzureAD/microsoft-authentication-library-for-java@v1.15.1...v1.16.0)

---
updated-dependencies:
- dependency-name: com.microsoft.azure:msal4j
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* Updating SHAs

Signed-off-by: dependabot[bot] <[email protected]>

* Update changelog

Signed-off-by: dependabot[bot] <[email protected]>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <dependabot[bot]@users.noreply.github.com>
Signed-off-by: Kaushal Kumar <[email protected]>

* [Bugfix] Fix ICacheKeySerializerTests flakiness (#14564)

* Fix testInvalidInput flakiness

Signed-off-by: Peter Alfonsi <[email protected]>

* Addressed andrross's comment

Signed-off-by: Peter Alfonsi <[email protected]>

* rerun security check

Signed-off-by: Peter Alfonsi <[email protected]>

---------

Signed-off-by: Peter Alfonsi <[email protected]>
Co-authored-by: Peter Alfonsi <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Correct typo in method name (#14621)

Signed-off-by: vatsal <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Refactoring FilterPath.parse by using an iterative approach instead of recursion. (#14200)

* Refactor FilterPath parse function (#12067)
Signed-off-by: Robin Friedmann <[email protected]>

* Implement unit tests for FilterPathTests (#12067)
Signed-off-by: Robin Friedmann <[email protected]>

* Write warn log if Filter is empty; Add comments (#12067)
Signed-off-by: Robin Friedmann <[email protected]>

* Add changelog

Signed-off-by: Siddhant Deshmukh <[email protected]>

* Remove unnecessary log statement

Signed-off-by: Siddhant Deshmukh <[email protected]>

* Remove unused logger

Signed-off-by: Siddhant Deshmukh <[email protected]>

* Spotless apply

Signed-off-by: Siddhant Deshmukh <[email protected]>

* Remove incorrect changelog

Signed-off-by: Siddhant Deshmukh <[email protected]>

---------

Signed-off-by: Siddhant Deshmukh <[email protected]>
Co-authored-by: Robin Friedmann <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Removing String format in RemoteStoreMigrationAllocationDecider to optimise performance(#14612)

Signed-off-by: RS146BIJAY <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Clear templates before Adding; Use NamedWriteableAwareStreamInput for RemoteCustomMetadata; Correct the check for deciding upload of HashesOfConsistentSettings (#14513)

* Clear templates before Adding; Use NamedWriteableAwareStreamInput for RemoteCustomMetadata
* Correct the check for deciding upload of hashes of consistent settings

Signed-off-by: Sooraj Sinha <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* add changelog

Signed-off-by: Kaushal Kumar <[email protected]>

* add PR link changelog

Signed-off-by: Kaushal Kumar <[email protected]>

* Improve reroute performance by optimising List.removeAll in LocalShardsBalancer to filter remote search shard from relocation decision (#14613)

Signed-off-by: RS146BIJAY <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Fix assertion failure while deleting remote backed index (#14601)

Signed-off-by: Sachin Kale <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Allow system index warning in OpenSearchRestTestCase.refreshAllIndices (#14635)

* Allow system index warning

Signed-off-by: Craig Perkins <[email protected]>

* Add to CHANGELOG

Signed-off-by: Craig Perkins <[email protected]>

* Address code review comments

Signed-off-by: Craig Perkins <[email protected]>

---------

Signed-off-by: Craig Perkins <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Star tree codec changes (#14514)

---------
Signed-off-by: Bharathwaj G <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Bump com.github.spullara.mustache.java:compiler from 0.9.13 to 0.9.14 in /modules/lang-mustache (#14672)

* Bump com.github.spullara.mustache.java:compiler

Bumps [com.github.spullara.mustache.java:compiler](https://github.com/spullara/mustache.java) from 0.9.13 to 0.9.14.
- [Commits](spullara/mustache.java@mustache.java-0.9.13...mustache.java-0.9.14)

---
updated-dependencies:
- dependency-name: com.github.spullara.mustache.java:compiler
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* Updating SHAs

Signed-off-by: dependabot[bot] <[email protected]>

* Update changelog

Signed-off-by: dependabot[bot] <[email protected]>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <dependabot[bot]@users.noreply.github.com>
Signed-off-by: Kaushal Kumar <[email protected]>

* Bump net.minidev:accessors-smart from 2.5.0 to 2.5.1 in /plugins/repository-azure (#14673)

* Bump net.minidev:accessors-smart in /plugins/repository-azure

Bumps [net.minidev:accessors-smart](https://github.com/netplex/json-smart-v2) from 2.5.0 to 2.5.1.
- [Release notes](https://github.com/netplex/json-smart-v2/releases)
- [Commits](netplex/json-smart-v2@2.5.0...2.5.1)

---
updated-dependencies:
- dependency-name: net.minidev:accessors-smart
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* Updating SHAs

Signed-off-by: dependabot[bot] <[email protected]>

* Update changelog

Signed-off-by: dependabot[bot] <[email protected]>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <dependabot[bot]@users.noreply.github.com>
Signed-off-by: Kaushal Kumar <[email protected]>

* move query group thread context propagator out of ThreadContext

Signed-off-by: Kaushal Kumar <[email protected]>

---------

Signed-off-by: Kaushal Kumar <[email protected]>
Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: Peter Alfonsi <[email protected]>
Signed-off-by: vatsal <[email protected]>
Signed-off-by: Siddhant Deshmukh <[email protected]>
Signed-off-by: RS146BIJAY <[email protected]>
Signed-off-by: Sooraj Sinha <[email protected]>
Signed-off-by: Sachin Kale <[email protected]>
Signed-off-by: Craig Perkins <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <dependabot[bot]@users.noreply.github.com>
Co-authored-by: Peter Alfonsi <[email protected]>
Co-authored-by: Peter Alfonsi <[email protected]>
Co-authored-by: Vatsal <[email protected]>
Co-authored-by: Siddhant Deshmukh <[email protected]>
Co-authored-by: Robin Friedmann <[email protected]>
Co-authored-by: rishavz_sagar <[email protected]>
Co-authored-by: Sooraj Sinha <[email protected]>
Co-authored-by: Sachin Kale <[email protected]>
Co-authored-by: Craig Perkins <[email protected]>
Co-authored-by: Bharathwaj G <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Add consumers to remote store based index settings (#14764)

Signed-off-by: Shourya Dutta Biswas <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Add matchesPluginSystemIndexPattern to SystemIndexRegistry (#14750)

* Add matchesPluginSystemIndexPattern to SystemIndexRegistry

Signed-off-by: Craig Perkins <[email protected]>

* Add to CHANGELOG

Signed-off-by: Craig Perkins <[email protected]>

* Use single data structure to keep track of system indices

Signed-off-by: Craig Perkins <[email protected]>

* Address code review comments

Signed-off-by: Craig Perkins <[email protected]>

* Add test for getAllDescriptors

Signed-off-by: Craig Perkins <[email protected]>

* Update server/src/main/java/org/opensearch/indices/SystemIndexRegistry.java

Co-authored-by: Andriy Redko <[email protected]>
Signed-off-by: Craig Perkins <[email protected]>

---------

Signed-off-by: Craig Perkins <[email protected]>
Signed-off-by: Craig Perkins <[email protected]>
Co-authored-by: Andriy Redko <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* SPI for loading ABC templates (#14659)

* SPI for loading ABC templates

Signed-off-by: mgodwan <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Fix bulk upsert ignores the default_pipeline and final_pipeline when the auto-created index matches the index template (#12891)

* Fix bulk upsert ignores the default_pipeline and final_pipeline when auto-created index matches with the index template

Signed-off-by: Gao Binlong <[email protected]>

* Modify changelog & comment

Signed-off-by: Gao Binlong <[email protected]>

* Use new approach

Signed-off-by: Gao Binlong <[email protected]>

* Fix test failure

Signed-off-by: Gao Binlong <[email protected]>

---------

Signed-off-by: Gao Binlong <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Fix flaky test due to node being used across all tests (#14787)

Signed-off-by: Mohit Godwani <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Star Tree Implementation [OnHeap] (#14512)

---------
Signed-off-by: Sarthak Aggarwal <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Add Gao Binlong as maintainer (#14796)

Signed-off-by: Andriy Redko <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Clear ehcache disk cache files during initialization (#14738)

* Clear ehcache disk cache files during initialization

Signed-off-by: Sagar Upadhyaya <[email protected]>

* Adding UT to fix line coverage

Signed-off-by: Sagar Upadhyaya <[email protected]>

* Addressing comment

Signed-off-by: Sagar Upadhyaya <[email protected]>

* Adding more Uts for better line coverage

Signed-off-by: Sagar Upadhyaya <[email protected]>

* Throwing exception in case we fail to clear cache files during startup

Signed-off-by: Sagar Upadhyaya <[email protected]>

* Adding more UTs

Signed-off-by: Sagar Upadhyaya <[email protected]>

* Adding a UT for more coverage

Signed-off-by: Sagar Upadhyaya <[email protected]>

* Fixing gradle build

Signed-off-by: Sagar Upadhyaya <[email protected]>

* Update ehcache disk cache close() logic

Signed-off-by: Sagar Upadhyaya <[email protected]>

---------

Signed-off-by: Sagar Upadhyaya <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Refactor remote-routing-table service inline with remote state interfaces (#14668)

---------
Signed-off-by: Arpit Bandejiya <[email protected]>
Signed-off-by: Arpit-Bandejiya <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Set version to 2.15 for determining metadata during migration to remote store

Signed-off-by: Sandeep Kumawat <[email protected]>
Co-authored-by: Sandeep Kumawat <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Fix bulk upsert ignores the default_pipeline and final_pipeline when the auto-created index matches the index template (#14793)

Signed-off-by: Andriy Redko <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Fix create or update alias API doesn't throw exception for unsupported parameters (#14769)

Signed-off-by: Andriy Redko <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Change RCSS info logs to debug (#14814)

Signed-off-by: Shivansh Arora <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* [Bugfix] Fix NPE in ReplicaShardAllocator (#13993) (#14385)

* [Bugfix] Fix NPE in ReplicaShardAllocator (#13993)

Signed-off-by: Daniil Roman <[email protected]>

* Add fix info to CHANGELOG.md

Signed-off-by: Daniil Roman <[email protected]>

---------

Signed-off-by: Daniil Roman <[email protected]>
Signed-off-by: Daniil Roman <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Run performance benchmark on pull requests (#14760)

* add performance benchmark workflow for pull requests

Signed-off-by: Rishabh Singh <[email protected]>

* Update PERFORMANCE_BENCHMARKS.md

Co-authored-by: Andriy Redko <[email protected]>
Signed-off-by: Rishabh Singh <[email protected]>

* Update PERFORMANCE_BENCHMARKS.md

Co-authored-by: Andriy Redko <[email protected]>
Signed-off-by: Rishabh Singh <[email protected]>

* Update .github/workflows/benchmark-pull-request.yml

Co-authored-by: Andriy Redko <[email protected]>
Signed-off-by: Rishabh Singh <[email protected]>

* Update .github/workflows/benchmark-pull-request.yml

Co-authored-by: Andriy Redko <[email protected]>
Signed-off-by: Rishabh Singh <[email protected]>

* Update .github/workflows/benchmark-pull-request.yml

Co-authored-by: Andriy Redko <[email protected]>
Signed-off-by: Rishabh Singh <[email protected]>

* Update .github/workflows/benchmark-pull-request.yml

Co-authored-by: Andriy Redko <[email protected]>
Signed-off-by: Rishabh Singh <[email protected]>

---------

Signed-off-by: Rishabh Singh <[email protected]>
Signed-off-by: Rishabh Singh <[email protected]>
Co-authored-by: Andriy Redko <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* fix constant_keyword field type (#14807)

Signed-off-by: kkewwei <[email protected]>

test

Signed-off-by: Daniel (dB.) Doubrovkine <[email protected]>
Co-authored-by: Daniel (dB.) Doubrovkine <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* [Remote Store Migration] Reconcile remote store based index settings during STRICT mode switch (#14792)

Signed-off-by: Shourya Dutta Biswas <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Add prefix mode verification setting for repository verification (#14790)

* Add prefix mode verification setting for repository verification

Signed-off-by: Ashish Singh <[email protected]>

* Add UTs and randomise prefix mode repository verification

Signed-off-by: Ashish Singh <[email protected]>

* Incorporate PR review feedback

Signed-off-by: Ashish Singh <[email protected]>

---------

Signed-off-by: Ashish Singh <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* add length check on comment body for benchmark workflow (#14834)

Signed-off-by: Rishabh Singh <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Add restore-from-snapshot test procedure for snapshot run benchmark config (#14842)

Signed-off-by: Rishabh Singh <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Fix env variable name typo (#14843)

Signed-off-by: Rishabh Singh <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Use circuit breaker in InternalHistogram when adding empty buckets (#14754)

* introduce circuit breaker in InternalHistogram

Signed-off-by: bowenlan-amzn <[email protected]>

* use circuit breaker from reduce context

Signed-off-by: bowenlan-amzn <[email protected]>

* add test

Signed-off-by: bowenlan-amzn <[email protected]>

* revert use_real_memory change in OpenSearchNode

Signed-off-by: bowenlan-amzn <[email protected]>

* add change log

Signed-off-by: bowenlan-amzn <[email protected]>

---------

Signed-off-by: bowenlan-amzn <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* [Remote State] Create interface RemoteEntitiesManager (#14671)

* Create interface RemoteEntitiesManager

Signed-off-by: Shivansh Arora <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Optimise TransportNodesAction to not send DiscoveryNodes for NodeStat… (#14749)

* Optimize TransportNodesAction to not send DiscoveryNodes for NodeStats, NodesInfo and ClusterStats call

Signed-off-by: Pranshu Shukla <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Enabling term version check on local state for all ClusterManager Read Transport Actions (#14273)

* enabling term version check on local state for all admin read actions

Signed-off-by: Rajiv Kumar Vaidyanathan <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Reduce logging in DEBUG for MasterService:run (#14795)

* Reduce logging in DEBUG for MasteService:run by introducing short and long summary in Taskbatcher

Signed-off-by: Sumit Bansal <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Add SplitResponseProcessor to Search Pipelines (#14800)

* Add SplitResponseProcessor for search pipelines

Signed-off-by: Daniel Widdis <[email protected]>

* Register the split processor factory

Signed-off-by: Daniel Widdis <[email protected]>

* Address code review comments

Signed-off-by: Daniel Widdis <[email protected]>

* Avoid list copy by casting array

Signed-off-by: Daniel Widdis <[email protected]>

---------

Signed-off-by: Daniel Widdis <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Add integration tests for RemoteRoutingTable Service. (#14631)

Signed-off-by: Shailendra Singh <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Add SortResponseProcessor to Search Pipelines (#14785)

* Add SortResponseProcessor for search pipelines

Signed-off-by: Daniel Widdis <[email protected]>

* Add stupid and unnecessary javadocs to satisfy overly strict CI

Signed-off-by: Daniel Widdis <[email protected]>

* Split casting and sorting methods for readability

Signed-off-by: Daniel Widdis <[email protected]>

* Register the sort processor factory

Signed-off-by: Daniel Widdis <[email protected]>

* Address code review comments

Signed-off-by: Daniel Widdis <[email protected]>

* Cast individual list elements to avoid creating two lists

Signed-off-by: Daniel Widdis <[email protected]>

* Add yamlRestTests

Signed-off-by: Daniel Widdis <[email protected]>

* Clarify why there's unusual sorting

Signed-off-by: Daniel Widdis <[email protected]>

* Use instanceof instead of isAssignableFrom

Signed-off-by: Daniel Widdis <[email protected]>

---------

Signed-off-by: Daniel Widdis <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Fix allowUnmappedFields, mapUnmappedFieldAsString settings to be applied when parsing query string query (#13957)

* Modify to invoke QueryShardContext.fieldMapper() method to apply allowUnmappedFields and mapUnmappedFieldAsString settings

Signed-off-by: imyp92 <[email protected]>

* Add test cases to verify returning 400 responses if unmapped fields are included for some types of query

Signed-off-by: imyp92 <[email protected]>

* Add changelog

Signed-off-by: imyp92 <[email protected]>

---------

Signed-off-by: imyp92 <[email protected]>
Signed-off-by: gaobinlong <[email protected]>
Co-authored-by: gaobinlong <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Bump com.microsoft.azure:msal4j from 1.16.0 to 1.16.1 in /plugins/repository-azure (#14857)

* Bump com.microsoft.azure:msal4j in /plugins/repository-azure

Bumps [com.microsoft.azure:msal4j](https://github.com/AzureAD/microsoft-authentication-library-for-java) from 1.16.0 to 1.16.1.
- [Release notes](https://github.com/AzureAD/microsoft-authentication-library-for-java/releases)
- [Changelog](https://github.com/AzureAD/microsoft-authentication-library-for-java/blob/dev/changelog.txt)
- [Commits](AzureAD/microsoft-authentication-library-for-java@v1.16.0...v1.16.1)

---
updated-dependencies:
- dependency-name: com.microsoft.azure:msal4j
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* Updating SHAs

Signed-off-by: dependabot[bot] <[email protected]>

* Update changelog

Signed-off-by: dependabot[bot] <[email protected]>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <dependabot[bot]@users.noreply.github.com>
Signed-off-by: Kaushal Kumar <[email protected]>

* Bump com.gradle.develocity from 3.17.5 to 3.17.6 (#14856)

* Bump com.gradle.develocity from 3.17.5 to 3.17.6

Bumps com.gradle.develocity from 3.17.5 to 3.17.6.

---
updated-dependencies:
- dependency-name: com.gradle.develocity
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* Update changelog

Signed-off-by: dependabot[bot] <[email protected]>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <dependabot[bot]@users.noreply.github.com>
Signed-off-by: Kaushal Kumar <[email protected]>

* Bump org.jline:jline in /test/fixtures/hdfs-fixture (#14859)

Bumps [org.jline:jline](https://github.com/jline/jline3) from 3.26.2 to 3.26.3.
- [Release notes](https://github.com/jline/jline3/releases)
- [Changelog](https://github.com/jline/jline3/blob/master/changelog.md)
- [Commits](jline/jline3@jline-parent-3.26.2...jline-parent-3.26.3)

---
updated-dependencies:
- dependency-name: org.jline:jline
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Kaushal Kumar <[email protected]>

* Use Lucene provided Persian stem (#14847)

Lucene provided Persian stem apparently isn't hooked yet and this change is
doing that based on what is done for Arabic stem support.

Signed-off-by: Ebrahim Byagowi <[email protected]>
Signed-off-by: Daniel (dB.) Doubrovkine <[email protected]>
Co-authored-by: Daniel (dB.) Doubrovkine <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Bump actions/checkout from 2 to 4 (#14858)

* Bump actions/checkout from 2 to 4

Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v2...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* Update changelog

Signed-off-by: dependabot[bot] <[email protected]>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <dependabot[bot]@users.noreply.github.com>
Signed-off-by: Kaushal Kumar <[email protected]>

* Deprecate batch_size parameter on bulk API (#14725)

By default the full _bulk payload will be passed to ingest processors as a
batch, with any sub batching logic to be implemented by each processor if
necessary.

Signed-off-by: Liyun Xiu <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Add perms for remote snapshot cache eviction on scripted query (#14411)

Signed-off-by: Finn Carroll <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* add transport interceptor to populate queryGroupId in task headers

Signed-off-by: Kaushal Kumar <[email protected]>

* Add rest, transport layer changes for Hot to warm tiering - dedicated setup (#13980)

Signed-off-by: Neetika Singhal <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Create listener to refresh search thread resource usage (#14832)

* [bug fix] fix incorrect coordinator node search resource usages

Signed-off-by: Chenyang Ji <[email protected]>

* fix bug on serialization when passing task resource usage to coordinator

Signed-off-by: Chenyang Ji <[email protected]>

* add more unit tests

Signed-off-by: Chenyang Ji <[email protected]>

* remove query insights plugin related code

Signed-off-by: Chenyang Ji <[email protected]>

* create per request listener to refresh task resource usage

Signed-off-by: Chenyang Ji <[email protected]>

* Make new listener API public

Signed-off-by: Siddhant Deshmukh <[email protected]>

* Add changelog

Signed-off-by: Siddhant Deshmukh <[email protected]>

* Remove wrong files added

Signed-off-by: Siddhant Deshmukh <[email protected]>

* Address review comments

Signed-off-by: Siddhant Deshmukh <[email protected]>

* Build fix

Signed-off-by: Siddhant Deshmukh <[email protected]>

* Make singleton

Signed-off-by: Siddhant Deshmukh <[email protected]>

* Address review comments

Signed-off-by: Siddhant Deshmukh <[email protected]>

* Make sure listener runs before plugin listeners

Signed-off-by: Siddhant Deshmukh <[email protected]>

* Spotless

Signed-off-by: Siddhant Deshmukh <[email protected]>

* Minor fix

Signed-off-by: Siddhant Deshmukh <[email protected]>

---------

Signed-off-by: Chenyang Ji <[email protected]>
Signed-off-by: Siddhant Deshmukh <[email protected]>
Signed-off-by: Jay Deng <[email protected]>
Co-authored-by: Chenyang Ji <[email protected]>
Co-authored-by: Jay Deng <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Caching avg total bytes and avg free bytes inside ClusterInfo (#14851)

Signed-off-by: RS146BIJAY <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Use default value when index.number_of_replicas is null (#14812)

* Use default value when index.number_of_replicas is null

Signed-off-by: Liyun Xiu <[email protected]>

* Add integration test

Signed-off-by: Liyun Xiu <[email protected]>

* Add changelog

Signed-off-by: Liyun Xiu <[email protected]>

---------

Signed-off-by: Liyun Xiu <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* [Remote Routing Table] Implement write and read flow for shard diff file. (#14684)

* Implement write and read flow to upload/download shard diff file.

Signed-off-by: Shailendra Singh <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Optimized ClusterStatsIndices to precomute shard stats (#14426)

* Optimize Cluster Stats Indices to precomute node level stats

Signed-off-by: Pranshu Shukla <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Fix constraint bug which allows more primary shards than average primary shards per index (#14908)

Signed-off-by: Gaurav Bafna <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* Optmising AwarenessAllocationDecider for hashmap.get call (#14761)

Signed-off-by: RS146BIJAY <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* update comment

Signed-off-by: Kaushal Kumar <[email protected]>

* Fix IngestServiceTests.testBulkRequestExecutionWithFailures (#14918)

The test would previously fail if the randomness led to only a single
indexing request being included in the bulk payload. This change
guarantees multiple indexing requests in order to ensure the batch logic
kicks in.

Also replace some unneeded mocks with real classes.

Signed-off-by: Andrew Ross <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>

* add queryGroupTask

Signed-off-by: Kaushal Kumar <[email protected]>

* remove unnecessary imports

Signed-off-by: Kaushal Kumar <[email protected]>

* add QueryGroupTask tests

Signed-off-by: Kaushal Kumar <[email protected]>

* rename WLM transport request handler

Signed-off-by: Kaushal Kumar <[email protected]>

* add CHANGELOG entry

Signed-off-by: Kaushal Kumar <[email protected]>

* fix ut

Signed-off-by: Kaushal Kumar <[email protected]>

* address comments

Signed-off-by: Kaushal Kumar <[email protected]>

* fix UT to remove the verify for final method

Signed-off-by: Kaushal Kumar <[email protected]>

* apply spotless

Signed-off-by: Kaushal Kumar <[email protected]>

---------

Signed-off-by: Kaushal Kumar <[email protected]>
Signed-off-by: Shivansh Arora <[email protected]>
Signed-off-by: Gao Binlong <[email protected]>
Signed-off-by: RS146BIJAY <[email protected]>
Signed-off-by: Chenyang Ji <[email protected]>
Signed-off-by: Craig Perkins <[email protected]>
Signed-off-by: Sandesh Kumar <[email protected]>
Signed-off-by: Andriy Redko <[email protected]>
Signed-off-by: Zelin Hao <[email protected]>
Signed-off-by: Lukáš Vlček <[email protected]>
Signed-off-by: kkewwei <[email protected]>
Signed-off-by: Swetha Guptha <[email protected]>
Signed-off-by: Sooraj Sinha <[email protected]>
Signed-off-by: ahmedsobeh <[email protected]>
Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Signed-off-by: Siddhant Deshmukh <[email protected]>
Signed-off-by: Peter Alfonsi <[email protected]>
Signed-off-by: vatsal <[email protected]>
Signed-off-by: Sachin Kale <[email protected]>
Signed-off-by: Shourya Dutta Biswas <[email protected]>
Signed-off-by: Craig Perkins <[email protected]>
Signed-off-by: mgodwan <[email protected]>
Signed-off-by: Mohit Godwani <[email protected]>
Signed-off-by: Sagar Upadhyaya <[email protected]>
Signed-off-by: Sandeep Kumawat <[email protected]>
Signed-off-by: Daniil Roman <[email protected]>
Signed-off-by: Daniil Roman <[email protected]>
Signed-off-by: Rishabh Singh <[email protected]>
Signed-off-by: Rishabh Singh <[email protected]>
Signed-off-by: Daniel (dB.) Doubrovkine <[email protected]>
Signed-off-by: Ashish Singh <[email protected]>
Signed-off-by: bowenlan-amzn <[email protected]>
Signed-off-by: Pranshu Shukla <[email protected]>
Signed-off-by: Rajiv Kumar Vaidyanathan <[email protected]>
Signed-off-by: Sumit Bansal <[email protected]>
Signed-off-by: Daniel Widdis <[email protected]>
Signed-off-by: Shailendra Singh <[email protected]>
Signed-off-by: imyp92 <[email protected]>
Signed-off-by: gaobinlong <[email protected]>
Signed-off-by: Ebrahim Byagowi <[email protected]>
Signed-off-by: Liyun Xiu <[email protected]>
Signed-off-by: Finn Carroll <[email protected]>
Signed-off-by: Neetika Singhal <[email protected]>
Signed-off-by: Jay Deng <[email protected]>
Signed-off-by: Gaurav Bafna <[email protected]>
Signed-off-by: Andrew Ross <[email protected]>
Co-authored-by: Shivansh Arora <[email protected]>
Co-authored-by: Arpit-Bandejiya <[email protected]>
Co-authored-by: gaobinlong <[email protected]>
Co-authored-by: rishavz_sagar <[email protected]>
Co-authored-by: Chenyang Ji <[email protected]>
Co-authored-by: Craig Perkins <[email protected]>
Co-authored-by: Sandesh Kumar <[email protected]>
Co-authored-by: Andriy Redko <[email protected]>
Co-authored-by: Zelin Hao <[email protected]>
Co-authored-by: Lukáš Vlček <[email protected]>
Co-authored-by: kkewwei <[email protected]>
Co-authored-by: SwethaGuptha <[email protected]>
Co-authored-by: Sooraj Sinha <[email protected]>
Co-authored-by: Ahmed Sobeh <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <dependabot[bot]@users.noreply.github.com>
Co-authored-by: opensearch-trigger-bot[bot] <98922864+opensearch-trigger-bot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Siddhant Deshmukh <[email protected]>
Co-authored-by: Peter Alfonsi <[email protected]>
Co-authored-by: Peter Alfonsi <[email protected]>
Co-authored-by: Vatsal <[email protected]>
Co-authored-by: Robin Friedmann <[email protected]>
Co-authored-by: Sachin Kale <[email protected]>
Co-authored-by: Bharathwaj G <[email protected]>
Co-authored-by: Shourya Dutta Biswas <[email protected]>
Co-authored-by: Craig Perkins <[email protected]>
Co-authored-by: Andriy Redko <[email protected]>
Co-authored-by: Mohit Godwani <[email protected]>
Co-authored-by: Sarthak Aggarwal <[email protected]>
Co-authored-by: Sagar <[email protected]>
Co-authored-by: Sandeep Kumawat <[email protected]>
Co-authored-by: Sandeep Kumawat <[email protected]>
Co-authored-by: Daniil Roman <[email protected]>
Co-authored-by: Rishabh Singh <[email protected]>
Co-authored-by: kkewwei <[email protected]>
Co-authored-by: Daniel (dB.) Doubrovkine <[email protected]>
Co-authored-by: Ashish Singh <[email protected]>
Co-authored-by: bowenlan-amzn <[email protected]>
Co-authored-by: Pranshu Shukla <[email protected]>
Co-authored-by: rajiv-kv <[email protected]>
Co-authored-by: Sumit Bansal <[email protected]>
Co-authored-by: Daniel Widdis <[email protected]>
Co-authored-by: shailendra0811 <[email protected]>
Co-authored-by: Park, Yeongwu <[email protected]>
Co-authored-by: ebraminio <[email protected]>
Co-authored-by: Liyun Xiu <[email protected]>
Co-authored-by: Finn <[email protected]>
Co-authored-by: Neetika Singhal <[email protected]>
Co-authored-by: Jay Deng <[email protected]>
Co-authored-by: Gaurav Bafna <[email protected]>
Co-authored-by: Andrew Ross <[email protected]>
  • Loading branch information
Show file tree
Hide file tree
Showing 10 changed files with 320 additions and 5 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
## [Unreleased 2.x]
### Added
- Fix for hasInitiatedFetching to fix allocation explain and manual reroute APIs (([#14972](https://github.com/opensearch-project/OpenSearch/pull/14972))
- [Workload Management] Add queryGroupId to Task ([14708](https://github.com/opensearch-project/OpenSearch/pull/14708))
- Add basic aggregation support for derived fields ([#14618](https://github.com/opensearch-project/OpenSearch/pull/14618))

### Dependencies
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@
import org.opensearch.core.tasks.TaskId;
import org.opensearch.search.fetch.ShardFetchSearchRequest;
import org.opensearch.search.internal.ShardSearchRequest;
import org.opensearch.tasks.CancellableTask;
import org.opensearch.tasks.SearchBackpressureTask;
import org.opensearch.wlm.QueryGroupTask;

import java.util.Map;
import java.util.function.Supplier;
Expand All @@ -50,7 +50,7 @@
* @opensearch.api
*/
@PublicApi(since = "1.0.0")
public class SearchShardTask extends CancellableTask implements SearchBackpressureTask {
public class SearchShardTask extends QueryGroupTask implements SearchBackpressureTask {
// generating metadata in a lazy way since source can be quite big
private final MemoizedSupplier<String> metadataSupplier;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@
import org.opensearch.common.annotation.PublicApi;
import org.opensearch.common.unit.TimeValue;
import org.opensearch.core.tasks.TaskId;
import org.opensearch.tasks.CancellableTask;
import org.opensearch.tasks.SearchBackpressureTask;
import org.opensearch.wlm.QueryGroupTask;

import java.util.Map;
import java.util.function.Supplier;
Expand All @@ -49,7 +49,7 @@
* @opensearch.api
*/
@PublicApi(since = "1.0.0")
public class SearchTask extends CancellableTask implements SearchBackpressureTask {
public class SearchTask extends QueryGroupTask implements SearchBackpressureTask {
// generating description in a lazy way since source can be quite big
private final Supplier<String> descriptionSupplier;
private SearchProgressListener progressListener = SearchProgressListener.NOOP;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@
import org.opensearch.transport.RemoteTransportException;
import org.opensearch.transport.Transport;
import org.opensearch.transport.TransportService;
import org.opensearch.wlm.QueryGroupTask;

import java.util.ArrayList;
import java.util.Arrays;
Expand Down Expand Up @@ -442,6 +443,12 @@ private void executeRequest(
);
searchRequestContext.getSearchRequestOperationsListener().onRequestStart(searchRequestContext);

// At this point either the QUERY_GROUP_ID header will be present in ThreadContext either via ActionFilter
// or HTTP header (HTTP header will be deprecated once ActionFilter is implemented)
if (task instanceof QueryGroupTask) {
((QueryGroupTask) task).setQueryGroupId(threadPool.getThreadContext());
}

PipelinedRequest searchRequest;
ActionListener<SearchResponse> listener;
try {
Expand Down
10 changes: 9 additions & 1 deletion server/src/main/java/org/opensearch/node/Node.java
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,7 @@
import org.opensearch.transport.TransportService;
import org.opensearch.usage.UsageService;
import org.opensearch.watcher.ResourceWatcherService;
import org.opensearch.wlm.WorkloadManagementTransportInterceptor;

import javax.net.ssl.SNIHostName;

Expand Down Expand Up @@ -1047,14 +1048,21 @@ protected Node(
admissionControlService
);

WorkloadManagementTransportInterceptor workloadManagementTransportInterceptor = new WorkloadManagementTransportInterceptor(
threadPool
);

final Collection<SecureSettingsFactory> secureSettingsFactories = pluginsService.filterPlugins(Plugin.class)
.stream()
.map(p -> p.getSecureSettingFactory(settings))
.filter(Optional::isPresent)
.map(Optional::get)
.collect(Collectors.toList());

List<TransportInterceptor> transportInterceptors = List.of(admissionControlTransportInterceptor);
List<TransportInterceptor> transportInterceptors = List.of(
admissionControlTransportInterceptor,
workloadManagementTransportInterceptor
);
final NetworkModule networkModule = new NetworkModule(
settings,
pluginsService.filterPlugins(NetworkPlugin.class),
Expand Down
76 changes: 76 additions & 0 deletions server/src/main/java/org/opensearch/wlm/QueryGroupTask.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
/*
* SPDX-License-Identifier: Apache-2.0
*
* The OpenSearch Contributors require contributions made to
* this file be licensed under the Apache-2.0 license or a
* compatible open source license.
*/

package org.opensearch.wlm;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.opensearch.common.unit.TimeValue;
import org.opensearch.common.util.concurrent.ThreadContext;
import org.opensearch.core.tasks.TaskId;
import org.opensearch.tasks.CancellableTask;

import java.util.Map;
import java.util.Optional;
import java.util.function.Supplier;

import static org.opensearch.search.SearchService.NO_TIMEOUT;

/**
* Base class to define QueryGroup tasks
*/
public class QueryGroupTask extends CancellableTask {

private static final Logger logger = LogManager.getLogger(QueryGroupTask.class);
public static final String QUERY_GROUP_ID_HEADER = "queryGroupId";
public static final Supplier<String> DEFAULT_QUERY_GROUP_ID_SUPPLIER = () -> "DEFAULT_QUERY_GROUP";
private String queryGroupId;

public QueryGroupTask(long id, String type, String action, String description, TaskId parentTaskId, Map<String, String> headers) {
this(id, type, action, description, parentTaskId, headers, NO_TIMEOUT);
}

public QueryGroupTask(
long id,
String type,
String action,
String description,
TaskId parentTaskId,
Map<String, String> headers,
TimeValue cancelAfterTimeInterval
) {
super(id, type, action, description, parentTaskId, headers, cancelAfterTimeInterval);
}

/**
* This method should always be called after calling setQueryGroupId at least once on this object
* @return task queryGroupId
*/
public final String getQueryGroupId() {
if (queryGroupId == null) {
logger.warn("QueryGroup _id can't be null, It should be set before accessing it. This is abnormal behaviour ");
}
return queryGroupId;
}

/**
* sets the queryGroupId from threadContext into the task itself,
* This method was defined since the queryGroupId can only be evaluated after task creation
* @param threadContext current threadContext
*/
public final void setQueryGroupId(final ThreadContext threadContext) {
this.queryGroupId = Optional.ofNullable(threadContext)
.map(threadContext1 -> threadContext1.getHeader(QUERY_GROUP_ID_HEADER))
.orElse(DEFAULT_QUERY_GROUP_ID_SUPPLIER.get());
}

@Override
public boolean shouldCancelChildrenOnCancellation() {
return false;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
/*
* SPDX-License-Identifier: Apache-2.0
*
* The OpenSearch Contributors require contributions made to
* this file be licensed under the Apache-2.0 license or a
* compatible open source license.
*/

package org.opensearch.wlm;

import org.opensearch.tasks.Task;
import org.opensearch.threadpool.ThreadPool;
import org.opensearch.transport.TransportChannel;
import org.opensearch.transport.TransportInterceptor;
import org.opensearch.transport.TransportRequest;
import org.opensearch.transport.TransportRequestHandler;

/**
* This class is used to intercept search traffic requests and populate the queryGroupId header in task headers
*/
public class WorkloadManagementTransportInterceptor implements TransportInterceptor {
private final ThreadPool threadPool;

public WorkloadManagementTransportInterceptor(ThreadPool threadPool) {
this.threadPool = threadPool;
}

@Override
public <T extends TransportRequest> TransportRequestHandler<T> interceptHandler(
String action,
String executor,
boolean forceExecution,
TransportRequestHandler<T> actualHandler
) {
return new RequestHandler<T>(threadPool, actualHandler);
}

/**
* This class is mainly used to populate the queryGroupId header
* @param <T> T is Search related request
*/
public static class RequestHandler<T extends TransportRequest> implements TransportRequestHandler<T> {

private final ThreadPool threadPool;
TransportRequestHandler<T> actualHandler;

public RequestHandler(ThreadPool threadPool, TransportRequestHandler<T> actualHandler) {
this.threadPool = threadPool;
this.actualHandler = actualHandler;
}

@Override
public void messageReceived(T request, TransportChannel channel, Task task) throws Exception {
if (isSearchWorkloadRequest(task)) {
((QueryGroupTask) task).setQueryGroupId(threadPool.getThreadContext());
}
actualHandler.messageReceived(request, channel, task);
}

boolean isSearchWorkloadRequest(Task task) {
return task instanceof QueryGroupTask;
}
}
}
44 changes: 44 additions & 0 deletions server/src/test/java/org/opensearch/wlm/QueryGroupTaskTests.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/*
* SPDX-License-Identifier: Apache-2.0
*
* The OpenSearch Contributors require contributions made to
* this file be licensed under the Apache-2.0 license or a
* compatible open source license.
*/

package org.opensearch.wlm;

import org.opensearch.test.OpenSearchTestCase;
import org.opensearch.threadpool.TestThreadPool;
import org.opensearch.threadpool.ThreadPool;

import java.util.Collections;

import static org.opensearch.wlm.QueryGroupTask.DEFAULT_QUERY_GROUP_ID_SUPPLIER;
import static org.opensearch.wlm.QueryGroupTask.QUERY_GROUP_ID_HEADER;

public class QueryGroupTaskTests extends OpenSearchTestCase {
private ThreadPool threadPool;
private QueryGroupTask sut;

public void setUp() throws Exception {
super.setUp();
threadPool = new TestThreadPool(getTestName());
sut = new QueryGroupTask(123, "transport", "Search", "test task", null, Collections.emptyMap());
}

public void tearDown() throws Exception {
super.tearDown();
threadPool.shutdown();
}

public void testSuccessfulSetQueryGroupId() {
sut.setQueryGroupId(threadPool.getThreadContext());
assertEquals(DEFAULT_QUERY_GROUP_ID_SUPPLIER.get(), sut.getQueryGroupId());

threadPool.getThreadContext().putHeader(QUERY_GROUP_ID_HEADER, "akfanglkaglknag2332");

sut.setQueryGroupId(threadPool.getThreadContext());
assertEquals("akfanglkaglknag2332", sut.getQueryGroupId());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/*
* SPDX-License-Identifier: Apache-2.0
*
* The OpenSearch Contributors require contributions made to
* this file be licensed under the Apache-2.0 license or a
* compatible open source license.
*/

package org.opensearch.wlm;

import org.opensearch.test.OpenSearchTestCase;
import org.opensearch.threadpool.TestThreadPool;
import org.opensearch.threadpool.ThreadPool;
import org.opensearch.transport.TransportRequest;
import org.opensearch.transport.TransportRequestHandler;
import org.opensearch.wlm.WorkloadManagementTransportInterceptor.RequestHandler;

import static org.opensearch.threadpool.ThreadPool.Names.SAME;

public class WorkloadManagementTransportInterceptorTests extends OpenSearchTestCase {

private ThreadPool threadPool;
private WorkloadManagementTransportInterceptor sut;

public void setUp() throws Exception {
super.setUp();
threadPool = new TestThreadPool(getTestName());
sut = new WorkloadManagementTransportInterceptor(threadPool);
}

public void tearDown() throws Exception {
super.tearDown();
threadPool.shutdown();
}

public void testInterceptHandler() {
TransportRequestHandler<TransportRequest> requestHandler = sut.interceptHandler("Search", SAME, false, null);
assertTrue(requestHandler instanceof RequestHandler);
}
}
Loading

0 comments on commit eb306d2

Please sign in to comment.