Commit Graph

6093 Commits

Author SHA1 Message Date
Nick Knize 14704b30ca
[Javadocs] add to o.o.monitor,persistance,plugins,repo,script,threadpool,usage,watcher (#3186)
Adds javadocs to classes in the org.opensearch.monitor, persistence, plugins,
repository, script, threadpool, usage, and watcher packages.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-05-04 15:21:35 -07:00
Nick Knize 4d3da00c12
[Javadocs] Add to o.o.disovery, env, gateway, http, ingest, lucene and node pkgs (#3185)
Adds javadocs to classes in the org.opensearch.discovery, env, gateway, http,
ingest, lucene, and node packages.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-05-04 14:32:01 -05:00
Nick Knize 6ca3278f96
[Javadocs] Add to remaining o.o.action classes (#3182)
Adds javadocs to remaining undocumented classes in o.o.action package.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-05-04 13:35:57 -05:00
Nick Knize 40024fcf71
[Javadocs] add to o.o.cluster (#3170)
Adds javadocs to classes in the o.o.cluster package.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-05-03 22:18:43 -05:00
Nick Knize c76a4c9014
[Remove] ShrinkAction, ShardUpgradeRequest, UpgradeSettingsRequestBuilder (#3169)
Removes unused ShrinkAction, ShardUpgradeRequest, and
UpgradeSettingsRequestBuilder classes.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-05-03 22:18:28 -05:00
Nick Knize ad1c8038b0
[Javadocs] add to o.o.action.admin (#3155)
Adds javadocs to classes in package o.o.action.admin.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-05-03 22:16:48 -05:00
Nick Knize c13b679aad
[Javadocs] add to o.o.bootstrap, cli, and client (#3163)
Adds javadocs to o.o.bootstrap, o.o.cli, and o.o.client packages.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-05-03 14:44:59 -05:00
Nick Knize 5f531b366e
[Remove] AliasesExistAction (#3149)
With the removal of Transport Client AliasesExistAction is no longer needed and
is removed.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-05-03 12:05:41 -04:00
Nick Knize 15f035b479
[Remove] TypesExist Action (#3139)
The types exist transport action can be removed now that the TransportClient has
been removed and types support has been removed.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-05-03 10:26:37 -04:00
Tianli Feng bb870f70c8
Rename ClusterBlock description 'no master' to 'no cluster-manager' (#3133)
* Rename ClusterBlock description 'no master' to 'no cluster-manager'

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Adjust format by spotlessApply task

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-05-03 10:24:37 -04:00
Tianli Feng f58d98d261
Rename reserved node id '_must_join_elected_master_' to '_must_join_elected_cluster_manager_' that used by in DetachClusterCommand (#3116)
Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-05-02 20:23:11 -07:00
Nick Knize 21468279b2
[Javadoc] Add missing package-info.java files to server (#3128)
In preparation for re-enabling the missingJavadoc gradle task this change adds
in the missing package-info.java files to the server folder. For now general
javadocs are added to these files with the intent to clean up with better
descriptions over time.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-05-02 14:30:53 -05:00
Tianli Feng 017773c62d
Rename BecomeMasterTask to BecomeClusterManagerTask in JoinTaskExecutor (#3099)
Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-04-28 13:57:49 -04:00
Nick Knize d86c88fe59
[Refactor] XContentType to parse Accept or Content-Type headers (#3077)
Refactors XContentType.fromMediaTypeOrFormat to fromMediaType so Accept headers
and Content-Type headers can be parsed separately. This helps in reusing the
same parse logic in for REST Versioning API support.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-04-28 09:58:26 -05:00
Tianli Feng 79eb3b0492
Replace internal usages of 'master' term in 'server/src/main' directory (#2519)
* Replace internal usages of 'master' terminology in server/src/main directory

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Restore rename DISCOVERED_MASTER in ClusterHealthResponse

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Rename two methods in unit tests

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Replace master word in ClusterState

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Replace master word in LeaderChecker JoinHelper JoinTaskExecutor

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Replace master word in more classes

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Replace master word in more classes

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Replace master word in more classes

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Replace master word in more classes

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Replace master word in more classes

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Replace master word in more classes

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Replace master word in DiscoveryNodes classes

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Replace master word in more classes

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Correct mistakes

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Adjust format by spotlessApply task

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Change MASTER__NODE_BOOTSTRAPPED_MSG in test

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Fix SnapshotDisruptionIT by renaming to cluster-manager

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-04-27 09:07:35 -04:00
Nick Knize 6b641d2fd2
[Remove] Type from nested fields using new metadata field mapper (#3004)
* [Remove] Type from nested fields using new metadata field mapper

types support is removed yet nested documents use the _type field to store the
path for nested documents. A new _nested_path metadata field mapper is added to
take the place of the _type field in order to remove the type dependency in
nested documents. BWC is handled in the new field mapper to ensure compatibility
with older versions.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>

* pr fixes

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>

* add test to merge same mapping with empty index settings

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-04-26 16:20:10 -04:00
Kartik Ganesh ee7b731975
Adds the replication type index setting, alongside a formal notion of feature flags (#3037)
* This change formalizes the notion of feature flags, and adds a "replication type" setting that will differentiate between document and segment replication, gated by a feature flag. 

Since seg-rep is currently an incomplete implementation, the feature flag ensures that the setting is not visible to users without explicitly setting a system property. We can then continue to merge seg-rep related changes from the feature branch to `main` safely hidden behind the feature flag gate.

Signed-off-by: Kartik Ganesh <gkart@amazon.com>

* Update security policy for testing feature flags

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>

Co-authored-by: Nicholas Walter Knize <nknize@apache.org>
2022-04-25 10:51:02 -07:00
Daniel Doubrovkine (dB.) a389d1e221
Revert "Support task resource tracking in OpenSearch (#2639)" (#3046)
This reverts commit 6517eeca50.

Signed-off-by: dblock <dblock@amazon.com>
Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-04-25 11:08:38 -05:00
Nick Knize 88bc268e29
[Rename] ESTestCase stragglers to OpenSearchTestCase (#3053)
A few places still referenced legacy ESTestCase name. This refactors those
instances to OpenSearchTestCase.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-04-23 16:50:55 -05:00
Nick Knize 3d49ccead2
[Upgrade] Lucene-9.2-snapshot (#2924) 2022-04-21 14:36:01 -07:00
Nick Knize cf78065481
[Remove] MainResponse version override cluster setting (#3031)
OpenSearch 2.0.0 no longer needs HLRC compatibility with legacy clients. This
commit removes all logic to spoof the version as a legacy cluster.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-04-21 17:16:57 -04:00
Peng Huo 03fbca3f50
Add new multi_term aggregation (#2687)
Adds a new multi_term aggregation. The current implementation focuses 
on adding new type aggregates. Performance (latency) is suboptimal in this
iteration, mainly because of brute force encoding/decoding a list of values
into bucket keys. A performance improvement change will be made as a 
follow on.

Signed-off-by: Peng Huo <penghuo@gmail.com>
2022-04-21 09:06:33 -05:00
Tushar Kharbanda 6517eeca50
Support task resource tracking in OpenSearch (#2639)
* Add Task id in Thread Context

Signed-off-by: Tushar Kharbanda <tushar.kharbanda72@gmail.com>

* Add resource tracking update support for tasks

Signed-off-by: Tushar Kharbanda <tushar.kharbanda72@gmail.com>

* List tasks action support for task resource refresh

Signed-off-by: Tushar Kharbanda <tushar.kharbanda72@gmail.com>

* Handle task unregistration case on same thread

Signed-off-by: Tushar Kharbanda <tushar.kharbanda72@gmail.com>

* Add lazy initialisation for RunnableTaskExecutionListener

Signed-off-by: Tushar Kharbanda <tushar.kharbanda72@gmail.com>

* Segregate resource tracking logic to a separate service.

Signed-off-by: Tushar Kharbanda <tushar.kharbanda72@gmail.com>

* Check for running threads during task unregister

Signed-off-by: Tushar Kharbanda <tushar.kharbanda72@gmail.com>

* Moved thread context logic to resource tracking service

Signed-off-by: Tushar Kharbanda <tushar.kharbanda72@gmail.com>

* preserve task id in thread context even after stash

Signed-off-by: Tushar Kharbanda <tushar.kharbanda72@gmail.com>

* Add null check for resource tracking service

Signed-off-by: Tushar Kharbanda <tushar.kharbanda72@gmail.com>

* Tracking service tests and minor refactoring

Signed-off-by: Tushar Kharbanda <tushar.kharbanda72@gmail.com>

* Preserve task id fix with test

Signed-off-by: Tushar Kharbanda <tushar.kharbanda72@gmail.com>

* Minor test changes and Task tracking call update

Signed-off-by: Tushar Kharbanda <tushar.kharbanda72@gmail.com>

* Fix Auto Queue executor method's signature

Signed-off-by: Tushar Kharbanda <tushar.kharbanda72@gmail.com>

* Make task runnable task listener factory implement consumer

Signed-off-by: Tushar Kharbanda <tushar.kharbanda72@gmail.com>

* Use reflection for ThreadMXBean

Signed-off-by: Tushar Kharbanda <tushar.kharbanda72@gmail.com>

* Formatting

Signed-off-by: Tushar Kharbanda <tushar.kharbanda72@gmail.com>

* Replace RunnableTaskExecutionListenerFactory with AtomicReference

Signed-off-by: Tushar Kharbanda <tushar.kharbanda72@gmail.com>

* Revert "Use reflection for ThreadMXBean"

This reverts commit cbcf3c525bf516fb7164f0221491a7b25c1f96ec.

Signed-off-by: Tushar Kharbanda <tushar.kharbanda72@gmail.com>

* Suppress Warning related to ThreadMXBean

Signed-off-by: Tushar Kharbanda <tushar.kharbanda72@gmail.com>

* Add separate method for task resource tracking supported check

Signed-off-by: Tushar Kharbanda <tushar.kharbanda72@gmail.com>

* Enabled setting by default

Signed-off-by: Tushar Kharbanda <tushar.kharbanda72@gmail.com>

* Add debug logs for stale context id

Signed-off-by: Tushar Kharbanda <tushar.kharbanda72@gmail.com>

* Remove hardcoded task overhead in tests

Signed-off-by: Tushar Kharbanda <tushar.kharbanda72@gmail.com>

* Bump stale task id in thread context log level to warn

Signed-off-by: Tushar Kharbanda <tushar.kharbanda72@gmail.com>

* Improve assertions and logging

Signed-off-by: Tushar Kharbanda <tushar.kharbanda72@gmail.com>

Co-authored-by: Tushar Kharbanda <tkharban@amazon.com>
2022-04-21 09:51:44 -04:00
Suraj Singh dbdee30a37
[Type Removal] Remove TypeFieldMapper usage, remove support of `_type` in searches and from LeafFieldsLookup (#3016)
Removes TypeFieldMapper and _type support from searches

Signed-off-by: Suraj Singh <surajrider@gmail.com>
2022-04-20 22:22:11 -05:00
Wenjun Ruan a34d11f15a
Remove usages of MultiTermQuery.setRewriteMethodsetRewriteMethod (#2997)
Remove usages of MultiTermQuery.setRewriteMethod which is removed in 
latest versions of Lucene.

Signed-off-by: ruanwenjun <wenjun@apache.org>
2022-04-20 22:14:44 -05:00
Kartik Ganesh c7c410a063
Refactoring GatedAutoCloseable and moving RecoveryState.Timer (#2965)
* Refactoring GatedAutoCloseable to AutoCloseableRefCounted

This is a part of the process of merging our feature branch - feature/segment-replication - back into main by re-PRing our changes from the feature branch.
GatedAutoCloseable currently wraps a subclass of RefCounted. Segment replication adds another subclass, but this also wraps RefCounted. Both subclasses have the same shutdown hook - decRef. This change makes the superclass less generic to increase code convergence.

The breakdown of the plan to merge segment-replication to main is detailed in #2355
Segment replication design proposal - #2229

Signed-off-by: Kartik Ganesh <gkart@amazon.com>

* Minor refactoring in RecoveryState

This change makes two minor updates to RecoveryState -
1. The readRecoveryState API is removed because it can be replaced by an invocation of the constructor
2. The class members of the Timer inner class are changed to private, and accesses are only through the public APIs

Signed-off-by: Kartik Ganesh <gkart@amazon.com>

* Update RecoveryTargetTests to test Timer subclasses deterministically

This change removes the use of RandomBoolean in testing the Timer classes and creates a dedicated unit test for each. The common test logic is shared via a private method.

Signed-off-by: Kartik Ganesh <gkart@amazon.com>

* Move the RecoveryState.Timer class to a top-level class

This will eventually be reused across both replication use-cases - peer recovery and segment replication.

Signed-off-by: Kartik Ganesh <gkart@amazon.com>

* Further update of timer tests in RecoveryTargetTests

Removes a non-deterministic code path around stopping the timer, and avoids assertThat (deprecated)

Signed-off-by: Kartik Ganesh <gkart@amazon.com>

* Rename to ReplicationTimer

Signed-off-by: Kartik Ganesh <gkart@amazon.com>

* Remove RecoveryTargetTests assert on a running timer

Trying to serialize and deserialize a running Timer instance, and then checking for equality leads to flaky test failures when the ser/deser takes time.

Signed-off-by: Kartik Ganesh <gkart@amazon.com>
2022-04-20 18:02:25 -04:00
Andriy Redko 3b7e654757
Remove JavaVersion, use builtin Runtime.Version to deal with runtime versions (#3006)
Signed-off-by: Andriy Redko <andriy.redko@aiven.io>
2022-04-20 17:14:02 -04:00
Nick Knize 6915df94c3
[Remove] remaining AllFieldMapper references (#3007)
AllFieldMapper was deprecated in legacy 6x. The remaining references are
removed, along with the field mapper and corresponding tests.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-04-20 15:05:13 -05:00
Andriy Redko d61d170332
Removed java11 source folders since JDK-11 is the baseline now (#2898)
Signed-off-by: Andriy Redko <andriy.redko@aiven.io>
2022-04-18 10:16:22 -07:00
Ankit Jain d39c18f7fe
Excluding system indices from max shard limit validator (#2894)
* Excluding system indices from max shard limit validator

Signed-off-by: Ankit Jain <jain.ankitk@gmail.com>

* Fixing spotless check violations

Signed-off-by: Ankit Jain <jain.ankitk@gmail.com>

* Fixing NPE due to null isHidden

Signed-off-by: Ankit Jain <jain.ankitk@gmail.com>

* Adding unit tests for shard opening scenario

Signed-off-by: Ankit Jain <jain.ankitk@gmail.com>

* Addressing review comments

Signed-off-by: Ankit Jain <jain.ankitk@gmail.com>
2022-04-14 16:36:01 -07:00
Vacha Shah 452e368bde
Adding a null pointer check to fix index_prefix query (#2879)
* Adding a null pointer check to fix index_prefix query

Signed-off-by: Vacha Shah <vachshah@amazon.com>

* Adding test

Signed-off-by: Vacha Shah <vachshah@amazon.com>
2022-04-14 11:07:22 -07:00
Poojita Raj c4b684d3ae
Add functionality to fast forward local processed checkpoints [segment replication] (#2576) (#2883)
* fix local processed checkpoint update (#2576)

Signed-off-by: Poojita Raj <poojiraj@amazon.com>

* separated tests + wrapper function

Signed-off-by: Poojita Raj <poojiraj@amazon.com>

* moved tests + compareAndSet change

Signed-off-by: Poojita Raj <poojiraj@amazon.com>
2022-04-13 14:00:43 -07:00
Owais Kazi 3c5d997a76
Added a new line linter (#2875)
* Added linter to add new line

Signed-off-by: Owais Kazi <owaiskazi19@gmail.com>

* Fixed new lines

Signed-off-by: Owais Kazi <owaiskazi19@gmail.com>

* Ignore empty files

Signed-off-by: Owais Kazi <owaiskazi19@gmail.com>

* Updated DEVELOPER GUIDE

Signed-off-by: Owais Kazi <owaiskazi19@gmail.com>

* Renamed workflow file

Signed-off-by: Owais Kazi <owaiskazi19@gmail.com>

* Fixed failing tests

Signed-off-by: Owais Kazi <owaiskazi19@gmail.com>
2022-04-13 14:14:18 -04:00
Tianli Feng 08e4a35839
Add request parameter 'cluster_manager_timeout' and deprecate 'master_timeout' - in Ingest APIs and Script APIs (#2682)
- Deprecate the request parameter `master_timeout` that used in Ingest APIs and Script APIs which have got the parameter. 
- Add alternative new request parameter `cluster_manager_timeout`.
- Add unit tests.

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-04-13 11:13:37 -07:00
opensearch-trigger-bot[bot] 3af4300c3f
Decouple IndexSettings from IncludeExclude (#2860) (#2861)
This change refactors an earlier change to impose a reg-ex size limit on the include/exclude string. Instead of accepting an IndexSettings instance, the class now accepts a integer limit value. This is necessary because the IncludeExclude class is used outside the core codebase, whose use-cases may be unaware of indices and their settings. To ensure that a limit is always imposed, a default limit is defined in the class.

(cherry picked from commit ba1966853e728b153e42be59ba449420e79b09ee)
Signed-off-by: Kartik Ganesh <gkart@amazon.com>

Co-authored-by: Kartik Ganesh <gkart@amazon.com>
2022-04-13 14:13:18 -04:00
Tianli Feng 455fad34ee
Change deprecation message for API parameter value 'master_node' of parameter 'metric' (#2880)
Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-04-12 14:58:19 -07:00
Tianli Feng a89b7e6216
Add request parameter 'cluster_manager_timeout' and deprecate 'master_timeout' - in Snapshot APIs (#2680)
* Deprecate the request parameter `master_timeout` that used in Snapshot APIs which have got the parameter. 
* Add alternative new request parameter `cluster_manager_timeout`.
* Add unit tests.

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-04-11 20:42:21 -07:00
Tianli Feng ba3ed8a9cb
Add request parameter 'cluster_manager_timeout' and deprecate 'master_timeout' - in Index Template APIs (#2678)
- Deprecate the request parameter `master_timeout` that used in Index Template APIs which have got the parameter. 
(The other Index APIs are addressed in PR https://github.com/opensearch-project/OpenSearch/pull/2660) 
- Add alternative new request parameter `cluster_manager_timeout`.
- Add unit tests.
Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-04-11 17:29:06 -07:00
Tianli Feng ba8657aca5
Change deprecation message for REST API parameter 'master_timeout' to specify the version of removal (#2863)
Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-04-11 15:59:04 -07:00
Kartik 2d89bc7c61
Updates to the large string reg-ex check (#2814)
* Updates to the large string reg-ex check

Removed the null-case for IndexSettings since this only occurs in tests. The tests now use a dummy Index Setting.
This change also fixes a bug with the base case handling of max regex length in the check.

Signed-off-by: Kartik Ganesh <gkart@amazon.com>
2022-04-07 18:12:33 -07:00
Tianli Feng 47a22bb08d
Replace remaining 'blacklist' with 'denylist' in internal class and method names (#2784)
* Replace blacklist with denylist in BlacklistedPathPatternMatcher

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Replace blacklist with denylist in assumption message

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Replace all Blacklisted with Denylisted

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Replace all blacklist(key) with denylist(key)

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Adjust format by spotlessApply task

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-04-07 15:45:20 -07:00
Kartik 566ebfa4fe
Bugfix to guard against stack overflow errors caused by very large reg-ex input (#2810)
* Bugfix to guard against stack overflow errors caused by very large reg-ex input

This change fixes a code path that did not properly impose the index-level max_regex_length limit. Therefore, it was possibly to provide ar arbitrarily large string as the include/exclude reg-ex value under search aggregations. This exposed the underlying node to crashes from a StackOverflowError, due to how the Lucene RegExp class processes strings using stack frames.

Signed-off-by: Kartik Ganesh <gkart@amazon.com>

* Adding integration tests for large string RegEx

Signed-off-by: Kartik Ganesh <gkart@amazon.com>

* Spotless

Signed-off-by: Kartik Ganesh <gkart@amazon.com>
2022-04-07 14:35:40 -07:00
Tianli Feng dd24e17ea6
Fix issue that deprecated setting 'cluster.initial_master_nodes' is not identified in node bootstrap check (#2779)
* Fix issue that deprecated setting 'cluster.initial_master_nodes' is not identified during node bootstrap

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Restore a variable name

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-04-06 15:01:12 -04:00
Tianli Feng 7aa496f9dd
Add request parameter 'cluster_manager_timeout' and deprecate 'master_timeout' - in Index APIs except index template APIs (#2660)
- Deprecate the request parameter `master_timeout` that used in Index APIs which have got the parameter. 
(except index template APIs, which is addressed in PR https://github.com/opensearch-project/OpenSearch/pull/2678) 
- Add alternative new request parameter `cluster_manager_timeout`.
- Add unit tests.

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-04-05 10:47:52 -07:00
Wenjun Ruan 0b1f4a2069
Rename `file` to `dir` in Environment (#2730)
* Rename `file` to `dir` in Environment

Signed-off-by: ruanwenjun <wenjun@apache.org>

* Fix compile error

Signed-off-by: ruanwenjun <wenjun@apache.org>

* fix compile error

Signed-off-by: ruanwenjun <wenjun@apache.org>
2022-04-05 09:23:08 -04:00
Nick Knize 406ee36b15
Fix TaskInfo serialization and unmute task_list bwc test (#2766)
Fixes the version check around resourceStats serialization and unmutes the
failing bwc test.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-04-05 06:25:45 -05:00
Nick Knize cb238aae61
Bump version to 3.0.0 (#2556)
Bump version to 3.0.0

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-04-04 17:40:31 -05:00
Tianli Feng 7d23b180f7
Add request parameter 'cluster_manager_timeout' and deprecate 'master_timeout' - in Cluster APIs (#2658)
- Deprecate the request parameter `master_timeout` that used in Cluster APIs which have got the parameter.
- Add alternative new request parameter `cluster_manager_timeout`.
- Add unit tests.

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-04-04 13:47:34 -07:00
Nick Knize 2d716ad9e2
[Version] Don't spoof major for 3.0+ clusters (#2722)
Changes version comparison logic to only translate major version when 
comparing with legacy 7x versions. This is needed beginning in 2.0 so 
that when running 2.0+ versions in bwc mode for 3.0+ upgrades, node 
versions no longer have to translate major version or spoof to legacy 
versions.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-04-04 14:01:04 -05:00
Wenjun Ruan d848c63260
Optimize Node, remove duplicate Settings (#2703)
Removes duplicate Settings

Signed-off-by: ruanwenjun <wenjun@apache.org>
2022-04-04 10:34:03 -05:00
Nick Knize 6c195abc59
[Main] Bump Version 2.0 to 2.1 (#2715)
Bumps from version 2.0 to 2.1

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-04-02 14:40:25 -05:00
Tianli Feng 78465b4a08
Add request parameter 'cluster_manager_timeout' as the alternative for 'master_timeout', and deprecate 'master_timeout' - in CAT APIs (#2557)
Apply the change of CAT Nodes API in PR #2435 to other applicable CAT APIs.

- Deprecate the request parameter `master_timeout` that used in many CAT APIs.
- Add alternative new request parameter `cluster_manager_timeout`.
- Add unit tests.

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-04-01 16:08:44 -07:00
Tianli Feng e1ee22218a
Centralize codes related to 'master_timeout' deprecation for eaiser removal - in CAT Nodes API (#2670)
* Move parseDeprecatedMasterTimeoutParameter method into BaseRestHandler class to reduce duplication

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Add more comments to unit test

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Make log message key different

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Prohibit using 'master_timeout' and 'cluster_manager_timeout' parameter together

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Add separate unit tests for BaseRestHandler.parseDeprecatedMasterTimeoutParameter()

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Restore unit test for cat allocation api

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Adjust format by spotlessApply task

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Fix testBothParamsNotValid() by adding warning assertion

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-03-31 20:25:42 -05:00
Suraj Singh e051a426d2
Add 1.3.2 to main causing gradle check failures (#2679)
Signed-off-by: Suraj Singh <surajrider@gmail.com>
2022-03-30 21:33:17 -07:00
Mohit Godwani ec4fe7066b
Make discovered_master field optional on the client to support compatibility for opensearch client with odfe (#2641)
Signed-off-by: Mohit Godwani <mgodwan@amazon.com>
2022-03-29 14:00:12 -04:00
Suraj Singh bcaa06bc0f
Add mapping method back referenced in other repos (#2636)
Signed-off-by: Suraj Singh <surajrider@gmail.com>
2022-03-29 11:27:28 -05:00
Sruti Parthiban 8b997c1d84
Add resource stats to task framework (#2089)
* Add resource stats to task framework

Signed-off-by: sruti1312 <srutiparthiban@gmail.com>

* Update thread resource info and add tests

Signed-off-by: sruti1312 <srutiparthiban@gmail.com>
2022-03-28 13:00:59 -04:00
Andriy Redko 908682d437
Enable merge on refresh and merge on commit on Opensearch (#2535)
Enables merge on refresh and merge on commit in Opensearch by 
way of two new index options: 
index.merge_on_flush.max_full_flush_merge_wait_time and 
index.merge_on_flush.enabled. Default merge_on_flush is disabled and
wait time is 10s. 

Signed-off-by: Andriy Redko <andriy.redko@aiven.io>
2022-03-25 13:45:34 -05:00
Owais Kazi cc0e66b1dc
Replaced "master" terminology in Log message (#2575)
Changed the log message to cluster-manager from master

Signed-off-by: Owais Kazi <owaiskazi19@gmail.com>
2022-03-24 21:50:54 -05:00
Andriy Redko b6ca0d1f78
Concurrent Searching (Experimental) (#1500)
* Concurrent Searching (Experimental)

Signed-off-by: Andriy Redko <andriy.redko@aiven.io>

* Addressingf code review comments

Signed-off-by: Andriy Redko <andriy.redko@aiven.io>
2022-03-24 14:20:31 -04:00
Nick Knize 511ac884fe
[Bug] Fix InboundDecoder version compat check (#2570)
Change InboundDecoder ensureVersionCompatibility check for onOrAfter
V_2_0_0 instead of explicit version check. This way bug fix and minor
versions will correctly handshake in a mixed 1.x Cluster.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-03-23 13:26:36 -05:00
Suraj Singh c1d5491baf
[Type removal] Remove deprecation warning on use of _type in doc scripts (#2564)
Signed-off-by: Suraj Singh <surajrider@gmail.com>
2022-03-23 08:15:17 -05:00
Nick Knize db7f4b0848
[Upgrade] Lucene 9.1 release (#2560)
Upgrades to the official 9.1 release

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-03-23 07:26:18 -05:00
Andriy Redko 82fb7abb71
Introduce QueryPhaseSearcher extension point (SearchPlugin) (#1931)
Signed-off-by: Andriy Redko <andriy.redko@aiven.io>
2022-03-21 23:11:23 -05:00
Nick Knize bd2d9350b7
Support for geo_bounding_box queries on geo_shape fields (#2506)
Adds support for using geo_bounding_box queries on geo_shape field types by
lifting the geo_point restriction in the QueryBuilder. Bounding Box query
integration tests are abstracted to test both geo_point and geo_shape types.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-03-21 22:51:51 -05:00
Suraj Singh 59d1e69129
[Remove] Types from PutIndexTemplateRequest and builder to reduce mapping to a string (#2510)
Signed-off-by: Suraj Singh <surajrider@gmail.com>
2022-03-21 18:49:18 -05:00
Nick Knize 4bb8add982
Support for geo_distance queries on geo_shape fields (#2516)
Adds support for using the geo_distance query on geo_shape field types by
lifting the geo_point restriction in the QueryBuilder. Distance query
integration tests are abstracted to test both geo_point and geo_shape field
types.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-03-21 18:47:49 -05:00
Nick Knize 17f782147a
[Unmute] NumberFieldTypeTests (#2531)
After merging Lucene 9.1 NumberFieldTypeTests is now passing. Unmute test.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-03-21 16:49:13 -04:00
Andriy Redko 1a3dbb70e0
ignore_malformed parameter on ip_range data_type throws mapper_parsing_exception (#2429)
Signed-off-by: Andriy Redko <andriy.redko@aiven.io>
2022-03-21 15:57:42 -04:00
Nick Knize ce0d2ca7bc
Fix bwcVersions after bumping version 1.3.1 (#2532)
Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-03-21 13:40:18 -05:00
Viggo 5dfd05c713
Clear up some confusing code in IndexShardHotSpotTests (#1534)
* clear up some useless but confusing test code

Signed-off-by: Weiguo Chen <viggoc96@gmail.com>

* remove useless comment

Signed-off-by: Weiguo Chen <viggoc96@gmail.com>
2022-03-21 14:36:52 -04:00
Tianli Feng e0f770643c
Add 'cluster_manager_node' into ClusterState Metric as an alternative to 'master_node' (#2415)
* Add `cluster_manager_node` into `ClusterState Metric`, as an alternative to `master_node`. So that the request parameter "metric" in `Cluster reroute` and `Cluster state` API accept the new value `cluster_manager_node`
* Deprecate the enum value of `Metric: MASTER_NODE("master_node")`
* Add YAML REST tests for the new parameter value for "cluster state" and "cluster reroute" API

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-03-18 15:09:37 -07:00
Tianli Feng ea31483126
Add a new node role 'cluster_manager' as the alternative for 'master' role and deprecate 'master' role (#2424)
Add a new node role `cluster_manager`, as the replacement for `master` role, that used in setting `node.roles: [ master ]`. 
They have got the same functionality, but can NOT be assigned to `node.roles` together.
* Add `CLUSTER_MANAGER_ROLE` in `DiscoveryNodeRole` class, and deprecate `MASTER_ROLE`
* Remove `MASTER_ROLE` from the `DiscoveryNodeRole.BUILT_IN_ROLES`, and temporarily load the role by the existing method `DiscoveryNode.setAdditionalRoles`
* Add a method `validateRole()` in `DiscoveryNodeRole` class, it's used to validate a specific role is compatible with the other roles to be assigned to a node together.
* Add deprecation message when assigning `master` role in setting `node.roles`
* Replace most `MASTER_ROLE` with `CLUSTER_MANAGER_ROLE` in current unit and integration tests
* Add new unit and integration tests to validate `CLUSTER_MANAGER_ROLE` and `MASTER_ROLE` can be treated as the same.

More explanation:
* New node will have "cluster_manager", "data", and "ingest" roles by default. Which means the default value of setting "node.roles" will be `["cluster_manager","data","ingest"]`, instead of `["master","data","ingest"]`
* "cluster_manager" role will be treated as "master" role in the OpenSearch node of previous versions.
* "cluster_manager” role and "master" role have got the same abbreviation name: "m"

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-03-18 15:06:06 -07:00
Tianli Feng 641350b0b6
Replace 'master' with 'cluster_manager' in 'GET Cat Nodes' API (#2441)
* Replace 'master' with 'cluster_manager' in the table header of [GET Cat Nodes](https://opensearch.org/docs/latest/opensearch/rest-api/cat/cat-nodes/) API, to promote inclusive language.
* Add `cm` as the alias for the table header `cluster_manager`
* Add `master` as the alias for the table header `cluster_manager`, for keeping compatibility when using `GET _cat/nodes?v&h=master` to show the specific column only.
* Add YAML rest test

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-03-18 15:04:49 -07:00
Tianli Feng ee048851f5
Replace 'discovered_master' with 'discovered_cluster_manager' in 'GET Cat Health' API (#2438)
* Replace 'discovered_master' with 'discovered_cluster_manager' in the table header of `GET Cat Health` API, to promote inclusive language.
* Add `dcm` as the alias for the table header `discovered_cluster_manager`
* Add `discovered_master` as the alias for the table header `discovered_cluster_manager`, for keeping compatibility when using `GET _cat/nodes?v&h=discovered_master` to show the specific column only.
* Add YAML rest test

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-03-18 15:04:03 -07:00
Tianli Feng 1c2bdd8642
Add a field discovered_cluster_manager in get cluster health api (#2437)
* Add a new field discovered_cluster_manager to the response of `GET _cluster/health` API, which has got the same value with the existing discovered_master field, aims to replace the non-inclusive term "master" in the API response field.
* Add yaml rest test to validate `discovered_cluster_manager` and `discovered_master` field have got the same value.

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-03-18 15:03:06 -07:00
Tianli Feng a87c9d4455
Add request parameter 'cluster_manager_timeout' as the alternative for 'master_timeout', and deprecate 'master_timeout' - in CAT Nodes API (#2435)
* `master_timeout` is being used in multiple APIs, such as cat allocation and cat nodes APIs. The PR take CAT Nodes API as a sample.
* Add a new request parameter `cluster_manager_timeout`, as the alternative for the existing `master_timeout`, in CAT Nodes API
* Throw an exception when both master_timeout and cluster_manager_timeout are assigned but with different values, such as `GET _cat/nodes?v&master_timeout=1s&cluster_manager_timeout=2s`. This is addressed by the temporary method `validateParamValuesAreEqual()` added in `RestRequest` class.
* Add deprecation log when using request parameter `master_timeout`
* Deprecate request parameter `master_timeout` of in rest api spec
* Add unit tests

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-03-18 15:02:06 -07:00
Tianli Feng 3da9eb642c
Add a new REST API endpoint 'GET _cat/cluster_manager' as the replacement of 'GET _cat/master' (#2404)
* Add a new path `/_cat/cluster_manager` for the REST request handler `RestMasterAction`
* Deprecate the existing path `/_cat/master`
* Change the name of the `RestMasterAction` handler from `cat_master_action` to `cat_cluster_manager_action`
* Change the response of `GET _cat` to only show the new path `/_cat/cluster_manager`
* Rename the JSON rest-api-spec file `cat.master.json` to `cat.cluster_manager.json` and update the paths.
* Add YAML REST test. By default, it will run test for both endpoints `GET _cat/cluster_manager` and `GET _cat/master`

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-03-18 15:00:23 -07:00
Tianli Feng 1193ec101b
Deprecate setting 'cluster.no_master_block' and introduce the alternative setting 'cluster.no_cluster_manager_block' (#2453)
* Add a new setting `cluster.no_cluster_manager_block`, aims to replace the existing `cluster.no_master_block`
* Set the value of the old setting `cluster.no_master_block` as the fallback to the new setting
* Deprecate the existing `setting cluster.no_master_block`
* Add unit tests

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-03-18 14:57:08 -07:00
Tianli Feng ec47a937f3
Deprecate setting 'cluster.service.slow_master_task_logging_threshold' and introduce the alternative setting 'cluster.service.slow_cluster_manager_task_logging_threshold' (#2451)
Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-03-18 14:56:17 -07:00
Tianli Feng 19eadb46ba
Deprecate setting 'cluster.initial_master_nodes' and introduce the alternative setting 'cluster.initial_cluster_manager_nodes' (#2463)
* Deprecate setting cluster.initial_master_nodes, and add setting cluster.initial_cluster_manager_nodes

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-03-18 14:55:49 -07:00
Nick Knize b9f04405d6
[Remove] types from CreateIndexRequest and companion Builder's mapping method (#2498)
Removes the type variable as input to CreateIndexRequest.mapping(Object...)
along with the CreateIndexRequestBuilder helper class. This also refactors the
method name to setMapping for consistency with other methods (e.g.,
setSettings).

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-03-17 18:13:27 -05:00
Nick Knize 2e3d3fef13
[Remove] Type from PutIndexTemplateRequest and PITRB (#2497)
Continues removal of types from PutIndexTemplateRequest and
PutIndexTemplateRequestBuilder.mapping. Delegated mapping method in
PutIndexTemplateRequestBuilder is refactored to setMapping for consistency with
similar methods (e.g., setSettings, setAliases).

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-03-17 12:05:24 -05:00
Suraj Singh f34a75381d
[Remove] Type metadata from ingest documents (#2491)
Signed-off-by: Suraj Singh <surajrider@gmail.com>
2022-03-17 11:02:08 -05:00
Nick Knize 3675400b92
[Remove] type from CIR.mapping and CIRB.mapping (#2478)
First pass to remove types from CreateIndexRequest and CreateIndexRequestBuilder
mapping method. This method is overloaded several times so the most widely used
methods in the RequestBuilder are refactored from mapping to setMapping to avoid
confusion, conflicts, and to be consistent with other method names (e.g.,
setSettings, setCause, setAlias).

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-03-16 17:35:08 -05:00
Nick Knize 05a5819243
[Upgrade] Lucene 9.1.0-snapshot-ea989fe8f30 (#2487)
* [Upgrade] Lucene 9.1.0-snapshot-ea989fe8f30

Upgrades from Lucene 9.0.0 to 9.1.0-snapshot-ea989fe8f30 in preparation for
9.1.0 GA.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>

* Add spanishplural token filter

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>

* fix KNOWN_TOKENIZERS

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-03-16 15:47:25 -04:00
Nick Knize bd21043d65
[Unmute] IndexPrimaryRelocationIT (#2488)
Unmutes IndexPrimaryRelocationIT.testPrimaryRelocationWhileIndexing which was
fixed by LuceneChangesSnapshot using accurate ops history.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-03-16 12:30:48 -05:00
John Mazanec f52f6f5052
Add default for EnginePlugin.getEngineFactory (#2419)
Adds default implementation for getEngineFactory in EnginePlugin. The
default just returns Optional.empty(), allowing plugin developers to
implement this plugin without implementing this method.

Signed-off-by: John Mazanec <jmazane@amazon.com>
2022-03-16 12:28:24 -05:00
Andriy Redko 77d106015f
Fixing PluginsServiceTests (post Lucene 9 update) (#2484)
Signed-off-by: Andriy Redko <andriy.redko@aiven.io>
2022-03-16 11:17:33 -04:00
Nick Knize 006c832c5f
[Upgrade] Lucene 9.0.0 release (#1109)
This commit upgrades the core codebase from Lucene 8.10.1 to
lucene 9.0.0. It includes all necessary refactoring of features and
API changes when upgrading to a new major Lucene release.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
Co-authored-by: Andriy Redko <drreta@gmail.com>
2022-03-15 15:48:13 -05:00
Nick Knize 757abdb9a0
[Refactor] LuceneChangesSnapshot to use accurate ops history (#2452)
Improves the LuceneChangesSnapshot to get an accurate count of recovery
operations using sort by sequence number optimization.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-03-15 13:13:54 -05:00
Nick Knize b619a050bf
[Remove] types based addMapping method from CreateIndexRequest and Builder (#2460)
Removes the obsolete types based .addMapping method from CreateIndexRequest and
CreateIndexRequestBuilder. Tests are refactored to use the new source only
setMapping method.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-03-15 10:31:31 -05:00
Nick Knize 7df40ee1b0
[Remove] type from TaskResults index and IndexMetadata.getMappings (#2469)
Removes types from the TaskResults internal index along with the getMappings
method from IndexMetadata. This is needed to further remove types from
CreateIndexRequest.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-03-15 01:05:58 -05:00
Suraj Singh 02d000c514
[Remove] Type query (#2448)
Signed-off-by: Suraj Singh <surajrider@gmail.com>
2022-03-14 20:46:23 -07:00
Suraj Singh 2b68b14629
[Remove] Type from TermsLookUp (#2459)
* [Remove] Type from TermsLookUp

Signed-off-by: Suraj Singh <surajrider@gmail.com>

* Fix unit test failure

Signed-off-by: Suraj Singh <surajrider@gmail.com>
2022-03-14 19:09:04 -07:00
Andriy Redko 5c0f9bc499
Discrepancy in result from _validate/query API and actual query validity (#2416)
* Discrepancy in result from _validate/query API and actual query validity

Signed-off-by: Andriy Redko <andriy.redko@aiven.io>

* Moved the validate() check later into the flow to allow range validation to trigger first

Signed-off-by: Andriy Redko <andriy.redko@aiven.io>
2022-03-14 14:11:26 -07:00
Nick Knize bdcaec5caf
[Remove] types from Uid and remaining types/Uid from translog (#2450)
Removes types from UID class along with cleaning up all obsolete MapperService
dependendices. This includes removing UID from the Translog Delete operation
which is no longer needed due to type dependency removal.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-03-13 12:49:51 -05:00
Nick Knize 95d4750249
[Remove] types from translog (#2439)
Removes persisting the type in the translog since types are no longer supported.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-03-12 14:03:00 -06:00
Nick Knize b00b3ce2b5
[Remove] Multiple Types from IndexTemplateMetadata (#2400)
Removes multi-type support from IndexTemplateMetadata so that instead of holding
a map of multiple types to mappings, it only returns a single mapping for a
single type. Also removes type from documentMapper() method to avoid any
accidental NullPointerExceptions in the internal mapping retrieval.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-03-10 22:36:08 -06:00
Kartik 9cfa395128
Remove the IndexCommitRef class (#2421)
This inner class is no longer required because its functionality has been moved to the generic GatedCloseable class.

Signed-off-by: Kartik Ganesh <gkart@amazon.com>
2022-03-10 10:12:17 -08:00