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

Create Remote Object managers and use them in orchestration from RemoteClusterStateService #13924

Merged
merged 8 commits into from
Jun 11, 2024

Conversation

shiv0408
Copy link
Member

@shiv0408 shiv0408 commented Jun 2, 2024

Description

This PR is a follow up on #12190, where we split the global metadata uploaded in remote as multiple files. We received review from maintainers to split the RemoteClusterStateService into de-composable units for which we created #12881

We have created new RemoteGlobalMetadataManager, RemoteIndexMetadataManager, RemoteManifestManager which manages the read and write of different RemoteObjects. RemoteClusterStateService leverages these managers to orchestrate the write and read of RemoteObjects to RemoteStore.

Additionally, metadata files uploaded with CODEC_V2 will not have .dat suffix. Our tree for metadata will look something like this:

base folder/
    |
    |--> index/
    |     | --> index_UUID/
    |              | --> metadata__<inverted_index_metadata_version>__<inverted_timestamp>__<codec_version>
    |              | --> metadata__<inverted_index_metadata_version>__<inverted_timestamp>__<codec_version>
    |
    |--> global-metadata/
    |       | --> coordination__<inverted_metadata_version>__<inverted_timestamp>__<codec_version>
    |       | --> settings__<inverted_metadata_version>__<inverted_timestamp>__<codec_version>
    |       | --> templates__<inverted_metadata_version>__<inverted_timestamp>__<codec_version>
    |       | --> custom__<type>__<inverted_metadata_version>__<inverted_timestamp>__<codec_version>
    |
    |
    |--> manifest/
    |       | --> manifest__<inverted_term>__<inverted_version>__<inverted_timestamp>__<codec_version>
    |       | --> manifest__<inverted_term>__<inverted_version>__<inverted_timestamp>__<codec_version>

Related Issues

Resolves #12881

Check List

  • New functionality includes testing.
    • All tests pass
  • New functionality has been documented.
    • New functionality has javadoc added
  • API changes companion pull request created.
  • Failing checks are inspected and point to the corresponding known issue(s) (See: Troubleshooting Failing Builds)
  • Commits are signed per the DCO using --signoff
  • Commit changes are listed out in CHANGELOG.md file (See: Changelog)
  • Public documentation issue/PR created

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 enhancement Enhancement or improvement to existing feature or request labels Jun 2, 2024
Copy link
Contributor

github-actions bot commented Jun 2, 2024

❌ Gradle check result for 8cc0442: 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

github-actions bot commented Jun 2, 2024

❌ Gradle check result for 11ded3e: 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

github-actions bot commented Jun 6, 2024

❌ Gradle check result for 9b53c30: 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 3ed4d14: 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 74b1086: 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: Shivansh Arora <hishiv@amazon.com>
Copy link
Contributor

❌ Gradle check result for 74b1086: 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 5697fab: SUCCESS

@shwetathareja shwetathareja merged commit 81fd088 into opensearch-project:main Jun 11, 2024
43 checks passed
@shwetathareja shwetathareja added the backport 2.x Backport to 2.x branch label Jun 11, 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-13924-to-2.x
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x --mainline 1 81fd0884ebb46414449f347f615924621cbff3c1
# Push it to GitHub
git push --set-upstream origin backport/backport-13924-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-13924-to-2.x.

soosinha pushed a commit to soosinha/OpenSearch that referenced this pull request Jun 11, 2024
…teClusterStateService (opensearch-project#13924)

* Create Remote Object managers and use them in orchestration from RemoteClusterStateService

Signed-off-by: Shivansh Arora <hishiv@amazon.com>
shwetathareja pushed a commit that referenced this pull request Jun 11, 2024
…teClusterStateService (#13924) (#14188)

* Create Remote Object managers and use them in orchestration from RemoteClusterStateService

Signed-off-by: Shivansh Arora <hishiv@amazon.com>
Co-authored-by: Shivansh Arora <hishiv@amazon.com>
kkewwei pushed a commit to kkewwei/OpenSearch that referenced this pull request Jul 24, 2024
…teClusterStateService (opensearch-project#13924) (opensearch-project#14188)

* Create Remote Object managers and use them in orchestration from RemoteClusterStateService

Signed-off-by: Shivansh Arora <hishiv@amazon.com>
Co-authored-by: Shivansh Arora <hishiv@amazon.com>
Signed-off-by: kkewwei <kkewwei@163.com>
@shiv0408 shiv0408 self-assigned this Aug 5, 2024
wdongyu pushed a commit to wdongyu/OpenSearch that referenced this pull request Aug 22, 2024
…teClusterStateService (opensearch-project#13924)

* Create Remote Object managers and use them in orchestration from RemoteClusterStateService

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
Labels
backport 2.x Backport to 2.x branch backport-failed Cluster Manager ClusterManager:RemoteState enhancement Enhancement or improvement to existing feature or request skip-changelog v2.15.0 Issues and PRs related to version 2.15.0
Projects
Status: ✅ Done
Development

Successfully merging this pull request may close these issues.

[Remote Cluster State] Refactor RemoteClusterStateService to small decomposable units for each file write
4 participants