Skip to content
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

[Remote State] Upload incremental cluster state on master re-election #15145

Merged
merged 15 commits into from
Sep 6, 2024

Conversation

shiv0408
Copy link
Member

@shiv0408 shiv0408 commented Aug 7, 2024

Description

Currently we upload full cluster state when master re-election happens. This can lead to un-neccessary upload of cluster state attributes even if no change is there in the cluster state attributes. If the cluster has lots of indices or other state metadata. Uploading state every time a node is trying to get elected as cluster manager, the overhead of uploading the cluster state can be big and can problems like S3 throttling or election loop.

Also, when we receive a publication request on a node where the Remote Publication is marked as enabled, but the publication is from Transport channel, we reset the last accepted state and manifest in our RemotePersistedState object to avoid any stale value being persisted on the nodes. Now if these nodes try to become cluster manager, they will be uploading the full state, which rather than uploading a diff from stale state.

Related Issues

Resolves #10682

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 Cluster Manager ClusterManager:RemoteState v2.16.0 Issues and PRs related to version 2.16.0 labels Aug 7, 2024
Copy link
Contributor

github-actions bot commented Aug 7, 2024

❌ Gradle check result for 9710a15: 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?

@shiv0408 shiv0408 added skip-changelog v2.17.0 and removed v2.16.0 Issues and PRs related to version 2.16.0 labels Aug 8, 2024
@shiv0408 shiv0408 marked this pull request as ready for review August 8, 2024 08:27
@github-actions github-actions bot added the v2.16.0 Issues and PRs related to version 2.16.0 label Aug 8, 2024
@shiv0408
Copy link
Member Author

shiv0408 commented Sep 6, 2024

Copy link
Contributor

github-actions bot commented Sep 6, 2024

❕ Gradle check result for 4b4b8b3: 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.

@shwetathareja shwetathareja merged commit cbdcbb7 into opensearch-project:main Sep 6, 2024
33 of 34 checks passed
@shwetathareja shwetathareja removed the v2.16.0 Issues and PRs related to version 2.16.0 label Sep 6, 2024
@opensearch-trigger-bot
Copy link
Contributor

The backport to 2.x failed:

The process '/usr/bin/git' failed with exit code 128

To backport manually, run these commands in your terminal:

# Navigate to the root of your repository
cd $(git rev-parse --show-toplevel)
# Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add ../.worktrees/OpenSearch/backport-2.x 2.x
# Navigate to the new working tree
pushd ../.worktrees/OpenSearch/backport-2.x
# Create a new branch
git switch --create backport/backport-15145-to-2.x
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x --mainline 1 cbdcbb7da3d87fdccfca164ac8f6914a55dc19cb
# Push it to GitHub
git push --set-upstream origin backport/backport-15145-to-2.x
# Go back to the original working tree
popd
# Delete the working tree
git worktree remove ../.worktrees/OpenSearch/backport-2.x

Then, create a pull request where the base branch is 2.x and the compare/head branch is backport/backport-15145-to-2.x.

@opensearch-trigger-bot
Copy link
Contributor

The backport to 2.17 failed:

The process '/usr/bin/git' failed with exit code 1

To backport manually, run these commands in your terminal:

# Navigate to the root of your repository
cd $(git rev-parse --show-toplevel)
# Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add ../.worktrees/OpenSearch/backport-2.17 2.17
# Navigate to the new working tree
pushd ../.worktrees/OpenSearch/backport-2.17
# Create a new branch
git switch --create backport/backport-15145-to-2.17
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x --mainline 1 cbdcbb7da3d87fdccfca164ac8f6914a55dc19cb
# Push it to GitHub
git push --set-upstream origin backport/backport-15145-to-2.17
# Go back to the original working tree
popd
# Delete the working tree
git worktree remove ../.worktrees/OpenSearch/backport-2.17

Then, create a pull request where the base branch is 2.17 and the compare/head branch is backport/backport-15145-to-2.17.

shiv0408 added a commit to shiv0408/OpenSearch that referenced this pull request Sep 6, 2024
…opensearch-project#15145)

* Upload incremental cluster state on master re-election

Signed-off-by: Shivansh Arora <hishiv@amazon.com>
(cherry picked from commit cbdcbb7)
shwetathareja pushed a commit that referenced this pull request Sep 6, 2024
…ster re-election (#15145) (#15792)

* [Remote State] Upload incremental cluster state on master re-election (#15145)

Signed-off-by: Shivansh Arora <hishiv@amazon.com>
(cherry picked from commit cbdcbb7)
shiv0408 added a commit to shiv0408/OpenSearch that referenced this pull request Sep 9, 2024
…opensearch-project#15145)

* Upload incremental cluster state on master re-election

Signed-off-by: Shivansh Arora <hishiv@amazon.com>
(cherry picked from commit cbdcbb7)
shwetathareja pushed a commit that referenced this pull request Sep 9, 2024
…#15145) (#15853)

* Upload incremental cluster state on master re-election

Signed-off-by: Shivansh Arora <hishiv@amazon.com>
(cherry picked from commit cbdcbb7)
akolarkunnu pushed a commit to akolarkunnu/OpenSearch that referenced this pull request Sep 10, 2024
…opensearch-project#15145)

* Upload incremental cluster state on master re-election

Signed-off-by: Shivansh Arora <hishiv@amazon.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: ✅ Done
Development

Successfully merging this pull request may close these issues.

[Optimization] [Remote state] With every election full state shouldn't get uploaded to remote
6 participants