Skip to content

Add implementation for remote store path types#13103

Merged
gbbafna merged 3 commits intoopensearch-project:mainfrom
ashking94:13074
Apr 9, 2024
Merged

Add implementation for remote store path types#13103
gbbafna merged 3 commits intoopensearch-project:mainfrom
ashking94:13074

Conversation

@ashking94
Copy link
Copy Markdown
Member

@ashking94 ashking94 commented Apr 5, 2024

Description

This is one of the tasks to achieve #12589 as part of the feature request #12567. This is only an increment step to conclude the optimised prefix path work proposed in the feature request.

In this PR, we are getting following things done -

  1. Implement hash functions for the path generation based on the custom data in the index metadata.
  2. Made the hashed_prefix as the default path type.
  3. Added another path type hashed_infix. This can be used to keep the data confined for a cluster within the base path supplied by the user.
  4. Added multiple tests, updated multiple UTs and ITs.

Related Issues

Resolves #13074

Check List

  • New functionality includes testing.
    • All tests pass
  • New functionality has been documented.
    • New functionality has javadoc added
  • 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 enhancement Enhancement or improvement to existing feature or request Storage:Performance Storage:Resiliency Issues and PRs related to the storage resiliency v2.14.0 labels Apr 5, 2024
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 5, 2024

Compatibility status:

Checks if related components are compatible with change 1c40cf1

Incompatible components

Skipped components

Compatible components

Compatible components: [https://github.com/opensearch-project/custom-codecs.git, https://github.com/opensearch-project/flow-framework.git, https://github.com/opensearch-project/neural-search.git, https://github.com/opensearch-project/job-scheduler.git, https://github.com/opensearch-project/cross-cluster-replication.git, https://github.com/opensearch-project/observability.git, https://github.com/opensearch-project/opensearch-oci-object-storage.git, https://github.com/opensearch-project/security-analytics.git, https://github.com/opensearch-project/geospatial.git, https://github.com/opensearch-project/notifications.git, https://github.com/opensearch-project/k-nn.git, https://github.com/opensearch-project/asynchronous-search.git, https://github.com/opensearch-project/reporting.git, https://github.com/opensearch-project/ml-commons.git, https://github.com/opensearch-project/common-utils.git, https://github.com/opensearch-project/sql.git, https://github.com/opensearch-project/index-management.git, https://github.com/opensearch-project/anomaly-detection.git, https://github.com/opensearch-project/performance-analyzer-rca.git, https://github.com/opensearch-project/security.git, https://github.com/opensearch-project/alerting.git, https://github.com/opensearch-project/performance-analyzer.git]

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 5, 2024

❌ Gradle check result for 326459d: 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?

@ashking94 ashking94 requested review from gbbafna and sachinpkale April 8, 2024 16:36
Signed-off-by: Ashish Singh <ssashish@amazon.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 8, 2024

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

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 8, 2024

❌ Gradle check result for d07246b:

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?

@ashking94
Copy link
Copy Markdown
Member Author

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

Flaky test - #5329

@sachinpkale sachinpkale changed the title [Remote Store] Add implementation for path types and change default type [Remote Store] Add implementation for path types Apr 9, 2024
@ashking94 ashking94 changed the title [Remote Store] Add implementation for path types Add implementation for remote store path types Apr 9, 2024
Signed-off-by: Ashish Singh <ssashish@amazon.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 9, 2024

❕ Gradle check result for 1c40cf1: UNSTABLE

  • TEST FAILURES:
      1 org.opensearch.repositories.azure.AzureBlobContainerRetriesTests.testReadNonexistentBlobThrowsNoSuchFileException

Please review all flaky tests that succeeded after retry and create an issue if one does not already exist to track the flaky failure.

@ashking94
Copy link
Copy Markdown
Member Author

testReadNonexistentBlobThrowsNoSuchFileException

Flaky test - #6090

@gbbafna gbbafna merged commit bad49ef into opensearch-project:main Apr 9, 2024
ashking94 added a commit to ashking94/OpenSearch that referenced this pull request Apr 23, 2024
)

Signed-off-by: Ashish Singh <ssashish@amazon.com>
shiv0408 pushed a commit to Gaurav614/OpenSearch that referenced this pull request Apr 25, 2024
)

Signed-off-by: Ashish Singh <ssashish@amazon.com>
Signed-off-by: Shivansh Arora <hishiv@amazon.com>
@ashking94 ashking94 added the backport 2.x Backport to 2.x branch label Apr 27, 2024
opensearch-trigger-bot bot pushed a commit that referenced this pull request Apr 27, 2024
Signed-off-by: Ashish Singh <ssashish@amazon.com>
(cherry picked from commit bad49ef)
Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
@ashking94
Copy link
Copy Markdown
Member Author

Auto backport is failing since the following code is different from main in 2.x branch -

main branch

String shardPath = getShardLevelBlobPath(client(), INDEX_NAME, BlobPath.cleanPath(), "0", TRANSLOG, METADATA).buildAsString();
Path translogMetaDataPath = Path.of(translogRepoPath + "/" + shardPath);

2.x branch

Path translogMetaDataPath = Path.of(String.valueOf(translogRepoPath), indexUUID, "/0/translog/metadata");

Raising manual backport.

ashking94 added a commit to ashking94/OpenSearch that referenced this pull request Apr 27, 2024
)

Signed-off-by: Ashish Singh <ssashish@amazon.com>
sachinpkale pushed a commit that referenced this pull request Apr 27, 2024
* Add implementation for remote store path types (#13103)

Signed-off-by: Ashish Singh <ssashish@amazon.com>

* Fix testLocalOnlyTranslogCleanupOnNodeRestart due to code differences

Signed-off-by: Ashish Singh <ssashish@amazon.com>

---------

Signed-off-by: Ashish Singh <ssashish@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 enhancement Enhancement or improvement to existing feature or request skip-changelog Storage:Performance Storage:Resiliency Issues and PRs related to the storage resiliency v2.14.0

Projects

Status: ✅ Done
Status: Planned work items

Development

Successfully merging this pull request may close these issues.

[Remote Store] Implement hashed_prefix path generation and make it as default remote path type

3 participants