Upload global cluster state to remote store#10404
Upload global cluster state to remote store#10404shwetathareja merged 19 commits intoopensearch-project:mainfrom
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] |
Bukhtawar
left a comment
There was a problem hiding this comment.
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
shwetathareja
left a comment
There was a problem hiding this comment.
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.