-
Notifications
You must be signed in to change notification settings - Fork 2k
Search only replicas (scale to zero) with Reader/Writer Separation #17299
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Signed-off-by: Prudhvi Godithi <[email protected]>
Signed-off-by: Prudhvi Godithi <[email protected]>
Signed-off-by: Prudhvi Godithi <[email protected]>
❌ Gradle check result for e89b812: 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? |
While I refactor the code and add additional tests, I’m creating this PR to gather early feedback please take a look and add your thoughts. I will share the testing results in the comments. Thanks! |
❌ Gradle check result for 1bd7c6a: 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? |
I went through and tested the following scenariosScenario 1: Search-Only Replicas Recovery with Persistent Data Directory and when
|
Coming from #17299 (comment) @shwetathareja can you please go over scenario 2 and 3 and if it make sense. I wanted to understand why |
8f1d4ea
to
7fa5133
Compare
❌ Gradle check result for 7fa5133: 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? |
7fa5133
to
64bb954
Compare
I have updated the PR to adjust the cluster health configuration using only search replicas and to incorporate the changes made when |
❌ Gradle check result for 64bb954: 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? |
64bb954
to
470c0ea
Compare
❌ Gradle check result for 470c0ea: 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? |
Adding @sachinpkale can you please take a look at this comment #17299 (comment) and provide your thoughts to understand why
I dint get much info from the docs https://opensearch.org/docs/latest/tuning-your-cluster/availability-and-recovery/remote-store/index/#restoring-from-a-backup. |
server/src/main/java/org/opensearch/rest/action/admin/indices/RestSearchonlyAction.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Prudhvi Godithi <[email protected]>
❌ Gradle check result for d7dbfa1: 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? |
❌ Gradle check result for 9628f0f: 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? |
Signed-off-by: Prudhvi Godithi <[email protected]>
9628f0f
to
3091ea1
Compare
Signed-off-by: Prudhvi Godithi <[email protected]>
❌ Gradle check result for d891a8e: 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? |
❕ Gradle check result for d891a8e: 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. |
❌ Gradle check result for 7064efc: 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? |
Signed-off-by: Prudhvi Godithi <[email protected]>
7064efc
to
4f3b2a5
Compare
I think this is in a good state, I'd like to get this merged so we can bake this and iterate if needed before 3.0 cutoff. |
❌ Gradle check result for 6cd6033: 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? |
Signed-off-by: Prudhvi Godithi <[email protected]>
6cd6033
to
096672c
Compare
Signed-off-by: Prudhvi Godithi <[email protected]>
Thanks @mch2 I have resolved the conversations/comments which should now allow maintainers to merge the PR. |
Description
The primary goal is to allow users to designate an index as search-only allowing only to have the search only replicas running when enabled via an API call
(can be disabled as_searchonly/enable
)._searchonly/disable
With
for an index the process has Two-Phase Scale-Down with a temporary block for the duration of the scale-down operation and then explicitly replace it with a permanent block once all prerequisites (e.g., shard sync, flush, metadata updates) have been met._searchonly/enable
From #17299 (comment) using
_scale
API withsearch_only
set to true or false.Eliminates the need for users to manually invoke the
_remotestore/_restore
API to recover search-only replicas with_searchonly/enable
, has automatic recovery of search-only replicas from the remote store during cluster recovery. The default behavior is still honored in normal conditions https://opensearch.org/docs/latest/tuning-your-cluster/availability-and-recovery/remote-store/index/#restoring-from-a-backup. More testing scenarios added here Search only replicas (scale to zero) with Reader/Writer Separation #17299 (comment).To Do (Work on the cluster health, coming from [META] Reader/Writer Separation #15306 (comment) add this similar implementation)This PR also has updated cluster health code Search only replicas (scale to zero) with Reader/Writer Separation #17299 (comment).Related Issues
#16720 and part of #15306
Check List
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.