-
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
Upload global cluster state to remote store #10404
Upload global cluster state to remote store #10404
Conversation
Signed-off-by: Dhwanil Patel <dhwanip@amazon.com>
Gradle Check (Jenkins) Run Completed with:
|
server/src/main/java/org/opensearch/gateway/remote/RemoteClusterStateService.java
Show resolved
Hide resolved
server/src/main/java/org/opensearch/gateway/remote/RemoteClusterStateService.java
Show resolved
Hide resolved
Compatibility status:Checks if related components are compatible with change 1aa7bcf Incompatible componentsSkipped componentsCompatible componentsCompatible components: [https://github.com/opensearch-project/security.git, https://github.com/opensearch-project/alerting.git, https://github.com/opensearch-project/index-management.git, https://github.com/opensearch-project/anomaly-detection.git, https://github.com/opensearch-project/sql.git, https://github.com/opensearch-project/job-scheduler.git, https://github.com/opensearch-project/asynchronous-search.git, https://github.com/opensearch-project/common-utils.git, https://github.com/opensearch-project/observability.git, https://github.com/opensearch-project/k-nn.git, https://github.com/opensearch-project/reporting.git, https://github.com/opensearch-project/security-analytics.git, https://github.com/opensearch-project/custom-codecs.git, https://github.com/opensearch-project/cross-cluster-replication.git, https://github.com/opensearch-project/opensearch-oci-object-storage.git, https://github.com/opensearch-project/performance-analyzer.git, https://github.com/opensearch-project/ml-commons.git, https://github.com/opensearch-project/performance-analyzer-rca.git, https://github.com/opensearch-project/geospatial.git, https://github.com/opensearch-project/notifications.git, https://github.com/opensearch-project/neural-search.git] |
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.
Thanks Dhwanil. Can you show the complete directory structure including index metadata to get a sense of the blob structure
Signed-off-by: Dhwanil Patel <dhwanip@amazon.com>
Signed-off-by: Dhwanil Patel <dhwanip@amazon.com>
This will be sample directory structure:
|
Gradle Check (Jenkins) Run Completed with:
|
server/src/main/java/org/opensearch/gateway/remote/ClusterMetadataManifest.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/opensearch/gateway/remote/ClusterMetadataManifest.java
Show resolved
Hide resolved
server/src/main/java/org/opensearch/gateway/remote/RemoteClusterStateService.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/opensearch/gateway/remote/RemoteClusterStateService.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/opensearch/gateway/remote/RemoteClusterStateService.java
Show resolved
Hide resolved
@dhwanilpatel what is the codec version here? The global metadata file should contain Metadata version as well. |
I guess the codec version here is the format of the |
The Metadata file path should contain the version as well, timestamp is just for preventing overwrites in case of multiple uploads. Also why do you need a separate codec version when cluster version is already written in manifest file. |
server/src/main/java/org/opensearch/gateway/remote/RemoteClusterStateService.java
Outdated
Show resolved
Hide resolved
Gradle Check (Jenkins) Run Completed with:
|
We discussed this offline and think, would be better to revisit versioning, essentially each file needs to have the file format versioned and the file format version should be surfaced to the file name to ensure we know how to parse the file if the underlying file format changes in future. Essentially having two different versions
|
55839b4
to
c2cf656
Compare
Gradle Check (Jenkins) Run Completed with:
|
@linuxpi yes lets create an issue |
Signed-off-by: Dhwanil Patel <dhwanip@amazon.com>
Gradle Check (Jenkins) Run Completed with:
|
Gradle Check (Jenkins) Run Completed with:
|
Signed-off-by: Dhwanil Patel <dhwanip@amazon.com>
5d09048
to
00474a9
Compare
Gradle Check (Jenkins) Run Completed with:
|
server/src/main/java/org/opensearch/repositories/blobstore/ChecksumBlobStoreFormat.java
Show resolved
Hide resolved
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.
finishing the tests, publishing other comments.
server/src/main/java/org/opensearch/gateway/remote/RemoteClusterStateService.java
Show resolved
Hide resolved
server/src/main/java/org/opensearch/gateway/remote/ClusterMetadataManifest.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/opensearch/gateway/remote/ClusterMetadataManifest.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/opensearch/gateway/remote/ClusterMetadataManifest.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/opensearch/gateway/remote/RemoteClusterStateService.java
Show resolved
Hide resolved
server/src/main/java/org/opensearch/gateway/remote/RemoteClusterStateService.java
Show resolved
Hide resolved
server/src/main/java/org/opensearch/gateway/remote/RemoteClusterStateService.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/opensearch/gateway/remote/RemoteClusterStateService.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/opensearch/gateway/remote/RemoteClusterStateService.java
Outdated
Show resolved
Hide resolved
server/src/test/java/org/opensearch/gateway/remote/RemoteClusterStateServiceTests.java
Outdated
Show resolved
Hide resolved
server/src/test/java/org/opensearch/gateway/remote/RemoteClusterStateServiceTests.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Dhwanil Patel <dhwanip@amazon.com>
Gradle Check (Jenkins) Run Completed with:
|
server/src/main/java/org/opensearch/gateway/remote/ClusterMetadataManifest.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/opensearch/gateway/remote/RemoteClusterStateService.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Dhwanil Patel <dhwanip@amazon.com>
Gradle Check (Jenkins) Run Completed with:
|
* Upload global cluster state to remote store Signed-off-by: Dhwanil Patel <dhwanip@amazon.com>
* Upload global cluster state to remote store Signed-off-by: Dhwanil Patel <dhwanip@amazon.com>
* Upload global cluster state to remote store Signed-off-by: Dhwanil Patel <dhwanip@amazon.com>
* Upload global cluster state to remote store Signed-off-by: Dhwanil Patel <dhwanip@amazon.com>
* Upload global cluster state to remote store Signed-off-by: Dhwanil Patel <dhwanip@amazon.com>
* Upload global cluster state to remote store Signed-off-by: Dhwanil Patel <dhwanip@amazon.com> Signed-off-by: Shivansh Arora <hishiv@amazon.com>
Description
Changes for uploading global metadata to remote store.
We will store all global metadata in single file in remote store. For incremental update we will check if global metadata has changed or not, if not then we will skip uploading it and if it has changed we will upload full global metadata to remote store.
Directory structure will look like this:
Related Issues
#10526
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.