🔎 Open source distributed and RESTful search engine.
Go to file
Saurabh Singh 3665daf5d0
Add Shard Level Indexing Pressure (#1336)
Shard level indexing pressure improves the current Indexing Pressure framework which performs memory accounting at node level and rejects the requests. This takes a step further to have rejections based on the memory accounting at shard level along with other key performance factors like throughput and last successful requests. 

**Key features**
- Granular tracking of indexing tasks performance, at every shard level, for each node role i.e. coordinator, primary and replica.
- Smarter rejections by discarding the requests intended only for problematic index or shard, while still allowing others to continue (fairness in rejection).
- Rejections thresholds governed by combination of configurable parameters (such as memory limits on node) and dynamic parameters (such as latency increase, throughput degradation).
- Node level and shard level indexing pressure statistics exposed through stats api.
- Integration of Indexing pressure stats with Plugins for for metric visibility and auto-tuning in future.
- Control knobs to tune to the key performance thresholds which control rejections, to address any specific requirement or issues.
- Control knobs to run the feature in shadow-mode or enforced-mode. In shadow-mode only internal rejection breakdown metrics will be published while no actual rejections will be performed.

The changes were divided into small manageable chunks as part of the following PRs against a feature branch.

- Add Shard Indexing Pressure Settings. #716
- Add Shard Indexing Pressure Tracker. #717
- Refactor IndexingPressure to allow extension. #718
- Add Shard Indexing Pressure Store #838
- Add Shard Indexing Pressure Memory Manager #945
- Add ShardIndexingPressure framework level construct and Stats #1015
- Add Indexing Pressure Service which acts as orchestrator for IP #1084
- Add plumbing logic for IndexingPressureService in Transport Actions. #1113
- Add shard indexing pressure metric/stats via rest end point. #1171
- Add shard indexing pressure integration tests. #1198

Signed-off-by: Saurabh Singh <sisurab@amazon.com>
Co-authored-by: Saurabh Singh <sisurab@amazon.com>
Co-authored-by: Rabi Panda <adnapibar@gmail.com>
2021-10-07 11:06:15 -07:00
.ci [Version] Add 1.2 for BWC testing (#1241) 2021-09-15 09:07:53 -07:00
.github Run link checker GitHub action on schedule. (#1221) 2021-09-08 11:24:19 -07:00
.idea [Rename] Replace more instances of Elasticsearch with OpenSearch. (#432) 2021-03-21 20:56:34 -05:00
benchmarks Make allocation decisions at node level first for pending task optimi… (#534) 2021-05-19 19:09:30 -07:00
buildSrc fix gradle check fail due to renameing -min in #1094 (#1289) 2021-09-24 12:06:16 -05:00
client Update Jackson to 2.12.5 (#1247) 2021-09-21 18:33:20 -04:00
dev-tools Add script to perform signoff check between commits (#152) 2021-03-13 10:36:15 -06:00
distribution Rename artifact produced by the build to include -min (#1251) 2021-09-21 19:43:35 -04:00
doc-tools Merging javadoc feature branch changes to main (#715) 2021-05-18 13:21:41 -07:00
gradle Fix defects in code-coverage.gralde to generate code coverage report properly (#1214) 2021-09-13 10:56:11 -07:00
libs Update Jackson to 2.12.5 (#1247) 2021-09-21 18:33:20 -04:00
licenses Remove the Elastic license file, all checks for this license and the license REST APIs. (#12) 2021-03-13 10:36:07 -06:00
modules Update Jackson to 2.12.5 (#1247) 2021-09-21 18:33:20 -04:00
plugins Update Jackson to 2.12.5 (#1247) 2021-09-21 18:33:20 -04:00
qa Add Shard Level Indexing Pressure (#1336) 2021-10-07 11:06:15 -07:00
release-notes Generate release notes for 1.1 (#1230) 2021-09-09 00:51:53 +05:30
rest-api-spec [BUG] Fix cat.health test failures in pre 1.0.0 mixed cluster test (#928) 2021-07-02 17:07:15 -05:00
sandbox Enable adding experimental features through sandbox modules (#691) 2021-06-22 11:45:18 -05:00
server Add Shard Level Indexing Pressure (#1336) 2021-10-07 11:06:15 -07:00
test Add Shard Level Indexing Pressure (#1336) 2021-10-07 11:06:15 -07:00
.dir-locals.el Go back to 140 column limit in .dir-locals.el 2017-04-14 08:50:53 -06:00
.editorconfig Remove default indent from .editorconfig (#49183) 2019-11-18 08:05:53 +00:00
.gitattributes Converted all .asciidoc to .md. (#658) 2021-05-05 15:04:14 -04:00
.gitignore [Rename] Replace more instances of Elasticsearch with OpenSearch. (#432) 2021-03-21 20:56:34 -05:00
.lycheeexclude Exclude failing links from plugins/modules (#1223) 2021-09-08 13:39:53 +05:30
ADMINS.md Updated READMEs on releasing, maintaining, admins and security. (#853) 2021-06-17 18:03:11 -04:00
CODE_OF_CONDUCT.md Update CODE_OF_CONDUCT.md 2021-03-13 10:36:16 -06:00
CONTRIBUTING.md fix typo (#1305) 2021-09-28 13:54:35 -04:00
DEVELOPER_GUIDE.md adding components to DEVELOPER_GUIDE (#1200) 2021-09-20 20:59:49 -07:00
Jenkinsfile Update CI workflow to work on new infra (#123) 2021-03-13 10:36:15 -06:00
LICENSE.txt Update LICENSE.txt 2021-03-22 09:25:46 -05:00
MAINTAINERS.md Updated READMEs on releasing, maintaining, admins and security. (#853) 2021-06-17 18:03:11 -04:00
NOTICE.txt Fixed copyright to OpenSearch (#1175) 2021-08-31 12:55:28 -04:00
README.md Adding Security Reporting Instructions in README.md file Signed-off-by: Rishikesh Reddy Pasham rishireddy1159@gmail.com (#1326) 2021-10-02 10:41:30 -04:00
RELEASING.md Updated READMEs on releasing, maintaining, admins and security. (#853) 2021-06-17 18:03:11 -04:00
SECURITY.md Updated READMEs on releasing, maintaining, admins and security. (#853) 2021-06-17 18:03:11 -04:00
TESTING.md Add guide for generating code coverage report in TESTING.md (#1264) 2021-09-21 19:44:08 -04:00
Vagrantfile [TEST] Fix failing distro tests for linux packages (#569) 2021-05-15 21:45:48 -07:00
build.gradle [BWC] Re-enable bwc testing after 1.0.1 version bump 2021-08-26 07:11:53 -05:00
gradle.properties Speed ups to test suite and precommit tasks. (#580) 2021-04-20 09:02:45 -05:00
gradlew Update gradle wrapper to 6.6 (#59909) (#60949) 2020-08-11 11:03:19 +02:00
gradlew.bat Update gradle wrapper to 6.6 (#59909) (#60949) 2020-08-11 11:03:19 +02:00
settings.gradle A CLI tool to assist during an upgrade to OpenSearch. (#846) 2021-07-13 09:51:02 -07:00

README.md

Welcome!

OpenSearch is a community-driven, open source fork of Elasticsearch and Kibana following the licence change in early 2021. We're looking to sustain (and evolve!) a search and analytics suite for the multitude of businesses who are dependent on the rights granted by the original, Apache v2.0 License.

Project Resources

Code of Conduct

This project has adopted the Amazon Open Source Code of Conduct. For more information see the Code of Conduct FAQ, or contact opensource-codeofconduct@amazon.com with any additional questions or comments.

Security

If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our vulnerability reporting page or directly via email to aws-security@amazon.com. Please do not create a public GitHub issue.

License

This project is licensed under the Apache v2.0 License.

Copyright OpenSearch Contributors. See NOTICE for details.