-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
[WIP] Search only replicas (scale to zero) with Reader/Writer Separation #17299
base: main
Are you sure you want to change the base?
[WIP] Search only replicas (scale to zero) with Reader/Writer Separation #17299
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? |
Signed-off-by: Prudhvi Godithi <[email protected]>
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? |
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
_searchonly/enable
(can be disabled as_searchonly/disable
).With
_searchonly/enable
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.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. Teh 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.To Do (Work on the cluster health, coming from [META] Reader/Writer Separation #15306 (comment) add this similar implementation)
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.