-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Introduce Remote translog feature flag #4158
Introduce Remote translog feature flag #4158
Conversation
Signed-off-by: Bukhtawar Khan <bukhtawa@amazon.com>
Gradle Check (Jenkins) Run Completed with:
|
server/src/main/java/org/opensearch/cluster/metadata/IndexMetadata.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/opensearch/common/util/FeatureFlags.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/opensearch/common/settings/IndexScopedSettings.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Bukhtawar Khan <bukhtawa@amazon.com>
Signed-off-by: Bukhtawar Khan <bukhtawa@amazon.com>
Gradle Check (Jenkins) Run Completed with:
|
Gradle Check (Jenkins) Run Completed with:
|
This looks more like an additional setting for remote store vs a feature flag in FeatureFlags.java. I think thats ok bc its still gated by remote store FF? |
Gradle Check (Jenkins) Run Completed with:
|
That's correct @mch2. The FF would be common across remote segment store and remote translog store however to keep remote translog store gated and provide mechanisms to support remote segment store independent of remote translog store we are going with two separate index settings |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall this LGTM, but I have questions about the silent validation when settings are null.
@@ -777,9 +775,30 @@ public void testRemoteStoreExplicitSetting() { | |||
assertTrue(settings.isRemoteStoreEnabled()); | |||
} | |||
|
|||
public void testRemoteTranslogStoreDefaultSetting() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we add a test if settings is null?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@nknize added tests for null settings
Signed-off-by: Bukhtawar Khan <bukhtawa@amazon.com>
Gradle Check (Jenkins) Run Completed with:
|
Gradle Check (Jenkins) Run Completed with:
|
Gradle Check (Jenkins) Run Completed with:
|
Gradle Check (Jenkins) Run Completed with:
|
Gradle Check (Jenkins) Run Completed with:
|
Addressed comments, will follow it up if there are are further changes needed
@nknize I am merging the PR to unblock other PRs, please feel free to add comments and I will address them in a follow up PR. |
The backport to
To backport manually, run these commands in your terminal: # Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add .worktrees/backport-2.x 2.x
# Navigate to the new working tree
cd .worktrees/backport-2.x
# Create a new branch
git switch --create backport/backport-4158-to-2.x
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x --mainline 1 a469a3cbcb7a7294a81bf7e4122968c2a9b32ca4
# Push it to GitHub
git push --set-upstream origin backport/backport-4158-to-2.x
# Go back to the original working tree
cd ../..
# Delete the working tree
git worktree remove .worktrees/backport-2.x Then, create a pull request where the |
* Introduce Remote translog feature flag * Limit combinations of remote segment and translog store to valid ones Signed-off-by: Bukhtawar Khan <bukhtawa@amazon.com>
* Introduce Remote translog feature flag * Limit combinations of remote segment and translog store to valid ones Signed-off-by: Bukhtawar Khan <bukhtawa@amazon.com> (cherry picked from commit a469a3c)
* Introduce Remote translog feature flag * Limit combinations of remote segment and translog store to valid ones Signed-off-by: Bukhtawar Khan <bukhtawa@amazon.com> (cherry picked from commit a469a3c)
* Introduce Remote translog feature flag * Limit combinations of remote segment and translog store to valid ones Signed-off-by: Bukhtawar Khan <bukhtawa@amazon.com> (cherry picked from commit a469a3c)
* Introduce Remote translog feature flag (#4158) * Introduce Remote translog feature flag * Limit combinations of remote segment and translog store to valid ones Signed-off-by: Bukhtawar Khan <bukhtawa@amazon.com> (cherry picked from commit a469a3c) * Add CHANGELOG entry Signed-off-by: Andrew Ross <andrross@amazon.com> Signed-off-by: Andrew Ross <andrross@amazon.com> Co-authored-by: Bukhtawar Khan <bukhtawa@amazon.com>
* Introduce Remote translog feature flag * Limit combinations of remote segment and translog store to valid ones Signed-off-by: Bukhtawar Khan <bukhtawa@amazon.com>
Signed-off-by: Bukhtawar Khan bukhtawa@amazon.com
Description
Introduce Remote translog feature flag, to gate remote translog changes from breaking remote segment store development and ensuring we can selectively enable remote segment store without requiring remote translog store. This clearly decouples durability semantics from refresh based(only remote segment based where clients would need to maintain non-flushed operations) to a per operation based durability semantics
For now we want to restrict enabling remote translog to cases when only remote segment store is enabled.
Issues Resolved
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.