Skip to content

Conversation

srikanthpadakanti
Copy link
Contributor

Description

This PR adds support for a new ForkJoinPoolType to the ThreadPool object in OpenSearch. This enhancement enables registration and management of ForkJoinPool thread pools within the OpenSearch cluster lifecycle, which is particularly useful for components like jVector that utilize ForkJoinPool for faster index buildup.

Related Issues

Resolves #18674

Check List

  • Functionality includes testing.
  • API changes companion pull request created, if applicable.
  • Public documentation issue/PR created, if applicable.

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

@github-actions github-actions bot added enhancement Enhancement or improvement to existing feature or request Other labels Aug 10, 2025
Copy link
Contributor

❌ Gradle check result for ddf3d9d: FAILURE

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

Copy link
Contributor

❌ Gradle check result for e8e2e83: FAILURE

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

Copy link
Contributor

❌ Gradle check result for f96fd0e: FAILURE

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

Copy link
Contributor

❌ Gradle check result for 5df90f6: FAILURE

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

Copy link
Contributor

❌ Gradle check result for 30024e3: FAILURE

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

Copy link
Contributor

❌ Gradle check result for 71e254c: FAILURE

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

Copy link
Contributor

❌ Gradle check result for c73c4d5: FAILURE

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

Copy link
Contributor

❌ Gradle check result for c4781ba: FAILURE

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

@andrross
Copy link
Member

@karenyrx Can you take a final pass on this PR?

Copy link
Contributor

✅ Gradle check result for efcafd1: SUCCESS

Signed-off-by: Srikanth Padakanti <[email protected]>
Copy link
Contributor

❌ Gradle check result for 2238404: FAILURE

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

Srikanth Padakanti added 2 commits October 15, 2025 22:14
Copy link
Contributor

✅ Gradle check result for c9762f5: SUCCESS

Copy link
Contributor

❕ Gradle check result for 1d64dba: UNSTABLE

Please review all flaky tests that succeeded after retry and create an issue if one does not already exist to track the flaky failure.

Copy link
Contributor

✅ Gradle check result for ca3f389: SUCCESS

Copy link
Contributor

❌ Gradle check result for 22a1086: FAILURE

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

@srikanthpadakanti
Copy link
Contributor Author

I wrote the testStatsAndValidateSettingForForkJoinPool to cover Stats method and validate setting, but the code coverage report still shows that part of the code is not covered.
I ran the same on local and I see this - attached the screenshots.
image
image

Copy link
Contributor

❌ Gradle check result for 0511a4a: FAILURE

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

@srikanthpadakanti
Copy link
Contributor Author

srikanthpadakanti commented Oct 17, 2025

@mch2 Failed test is unrelated to my change.

Copy link
Contributor

✅ Gradle check result for 0511a4a: SUCCESS

@mch2 mch2 merged commit 7042e77 into opensearch-project:main Oct 17, 2025
34 of 36 checks passed
rgsriram pushed a commit to rgsriram/OpenSearch that referenced this pull request Oct 18, 2025
…ject#19008)

* Initial chekpoint Feature Request - Add support for a ForkJoinPool type

Signed-off-by: Srikanth Padakanti <[email protected]>

* [Feature Request] Add support for a ForkJoinPool type - Add changelog entry

Signed-off-by: Srikanth Padakanti <[email protected]>

* [Feature Request] Add support for a ForkJoinPool type - Add changelog entry

Signed-off-by: Srikanth Padakanti <[email protected]>

* Add support for a ForkJoinPool type - spotlessApply

Signed-off-by: Srikanth Padakanti <[email protected]>

* Initial chekpoint Feature Request - Add support for a ForkJoinPool type

Signed-off-by: Srikanth Padakanti <[email protected]>

* Initial chekpoint Feature Request - Add support for a ForkJoinPool type

Signed-off-by: Srikanth Padakanti <[email protected]>

* Initial chekpoint Feature Request - Add support for a ForkJoinPool type

Signed-off-by: Srikanth Padakanti <[email protected]>

* Initial chekpoint Feature Request - Add support for a ForkJoinPool type

Signed-off-by: Srikanth Padakanti <[email protected]>

* Initial chekpoint Feature Request - Add support for a ForkJoinPool type

Signed-off-by: Srikanth Padakanti <[email protected]>

* Initial chekpoint Feature Request - Add support for a ForkJoinPool type

Signed-off-by: Srikanth Padakanti <[email protected]>

* Initial chekpoint Feature Request - Add support for a ForkJoinPool type

Signed-off-by: Srikanth Padakanti <[email protected]>

* Initial chekpoint Feature Request - Add support for a ForkJoinPool type

Signed-off-by: Srikanth Padakanti <[email protected]>

* Initial chekpoint Feature Request - Add support for a ForkJoinPool type

Signed-off-by: Srikanth Padakanti <[email protected]>

* Initial chekpoint Feature Request - Add support for a ForkJoinPool type

Signed-off-by: Srikanth Padakanti <[email protected]>

* Initial chekpoint Feature Request - Add support for a ForkJoinPool type

Signed-off-by: Srikanth Padakanti <[email protected]>

* Add few more tests to cover the code

Signed-off-by: Srikanth Padakanti <[email protected]>

* Add few more tests to cover the code

Signed-off-by: Srikanth Padakanti <[email protected]>

* Backward Compatibility : fallback to FIXED for unknown types

Signed-off-by: Srikanth Padakanti <[email protected]>

* Backward Compatibility : fallback to FIXED for unknown types

Signed-off-by: Srikanth Padakanti <[email protected]>

* Backward Compatibility : fallback to FIXED for unknown types

Signed-off-by: Srikanth Padakanti <[email protected]>

* Backward Compatibility : fallback to FIXED for unknown types

Signed-off-by: Srikanth Padakanti <[email protected]>

* Addressed the PR comments

Signed-off-by: Srikanth Padakanti <[email protected]>

* Apply spotlesscheck

Signed-off-by: Srikanth Padakanti <[email protected]>

* Apply spotlesscheck and merge new changes to my main branch

Signed-off-by: Srikanth Padakanti <[email protected]>

* Remove the allowlist and the registration method.

Signed-off-by: Srikanth Padakanti <[email protected]>

* Address the PR comments for the awaitTermination in threadpool

Signed-off-by: Srikanth Padakanti <[email protected]>

* Address the PR comments for the awaitTermination in threadpool

Signed-off-by: Srikanth Padakanti <[email protected]>

* Addressed the PR comments

Signed-off-by: Srikanth Padakanti <[email protected]>

* Address the PR comments

Signed-off-by: Srikanth Padakanti <[email protected]>

* Address the PR comments

Signed-off-by: Srikanth Padakanti <[email protected]>

* Address the PR comments

Signed-off-by: Srikanth Padakanti <[email protected]>

* Address the PR comments

Signed-off-by: Srikanth Padakanti <[email protected]>

* Address the PR comments

Signed-off-by: Srikanth Padakanti <[email protected]>

* Address the PR comments

Signed-off-by: Srikanth Padakanti <[email protected]>

* Address the PR comments for Yaml tests

Signed-off-by: Srikanth Padakanti <[email protected]>

* Address the PR comments for Yaml tests

Signed-off-by: Srikanth Padakanti <[email protected]>

* Address the PR comments for Yaml tests

Signed-off-by: Srikanth Padakanti <[email protected]>

* Address the PR comments for Yaml tests

Signed-off-by: Srikanth Padakanti <[email protected]>

* Address the PR comments for Yaml tests

Signed-off-by: Srikanth Padakanti <[email protected]>

* Address the PR comments for Yaml tests

Signed-off-by: Srikanth Padakanti <[email protected]>

* Address the PR comments for Yaml tests

Signed-off-by: Srikanth Padakanti <[email protected]>

* Address the PR comments for Yaml tests

Signed-off-by: Srikanth Padakanti <[email protected]>

* Address the PR comments for Yaml tests

Signed-off-by: Srikanth Padakanti <[email protected]>

* Address the PR comments for Yaml tests

Signed-off-by: Srikanth Padakanti <[email protected]>

* Address the PR comments for Yaml tests

Signed-off-by: Srikanth Padakanti <[email protected]>

* Address code review comments

Signed-off-by: Srikanth Padakanti <[email protected]>

* Address code review comments

Signed-off-by: Srikanth Padakanti <[email protected]>

* Address code review comments

Signed-off-by: Srikanth Padakanti <[email protected]>

* Address code review comments

Signed-off-by: Srikanth Padakanti <[email protected]>

* Address code review comments

Signed-off-by: Srikanth Padakanti <[email protected]>

* Address code review comments

Signed-off-by: Srikanth Padakanti <[email protected]>

* Resolve merge conflicts

Signed-off-by: Srikanth Padakanti <[email protected]>

* Introduce new settings in ForkJoinPoolExecutorBuilder

Signed-off-by: Srikanth Padakanti <[email protected]>

* overload the constructor and keep the existing version for compatibility.

Signed-off-by: Srikanth Padakanti <[email protected]>

* Fix the precommit failure issues

Signed-off-by: Srikanth Padakanti <[email protected]>

* Fix the test failures for queue size

Signed-off-by: Srikanth Padakanti <[email protected]>

* Fix the test failures for queue size

Signed-off-by: Srikanth Padakanti <[email protected]>

* Added tests

Signed-off-by: Srikanth Padakanti <[email protected]>

* Added tests for the codecoverage target

Signed-off-by: Srikanth Padakanti <[email protected]>

* Changed te scope of buildTable and removed reflection

Signed-off-by: Srikanth Padakanti <[email protected]>

* Changed te scope of buildTable and removed reflection

Signed-off-by: Srikanth Padakanti <[email protected]>

* Changed the IT from plugin folder to single node IT with inline plugin registration

Signed-off-by: Srikanth Padakanti <[email protected]>

* Changed the IT from plugin folder to single node IT with inline plugin registration

Signed-off-by: Srikanth Padakanti <[email protected]>

* Changed the IT from plugin folder to single node IT with inline plugin registration

Signed-off-by: Srikanth Padakanti <[email protected]>

* Removed the build.gradle dependency opensearch-common

Signed-off-by: Srikanth Padakanti <[email protected]>

* Removed the build.gradle dependency opensearch-common

Signed-off-by: Srikanth Padakanti <[email protected]>

---------

Signed-off-by: Srikanth Padakanti <[email protected]>
Signed-off-by: Srikanth Padakanti <[email protected]>
Co-authored-by: Srikanth Padakanti <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement Enhancement or improvement to existing feature or request Other

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature Request] Add support for a ForkJoinPool type

8 participants