OpenSearch icon indicating copy to clipboard operation
OpenSearch copied to clipboard

[Remote Store] Add support to separate segment infos snapshot from metadata

Open sachinpkale opened this issue 1 year ago • 14 comments

Description

  • Currently, in remote backed index, we upload segment metadata to remote store which also contains SegmentInfosSnapshot.
  • This was done as part of https://github.com/opensearch-project/OpenSearch/pull/7777 to keep metadata and SegmentInfos consistent with each other.
  • By combining metadata and SegmentInfosSnapshot, we are combining data and metadata and this coupling will create issue s where we try to use separate remote stores for data and metadata (https://github.com/opensearch-project/OpenSearch/pull/12993)
  • The inconsistency problem existed as we used to overwrite metadata and SegmentInfosSnapshot files for a given segment generation.
  • In https://github.com/opensearch-project/OpenSearch/pull/8363, we made metadata file immutable.
  • Using the same concept of immutability, we can separate out SegmentInfosSnapshot and avoid the inconsistency problem.
  • In this PR, we provide a setting that controls if the SegmentInfosSnapshot can be combined with the metadata or not.

Related Issues

Resolves #13129

Check List

  • [x] New functionality includes testing.
    • [x] 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)~
  • [x] Commits are signed per the DCO using --signoff
  • [x] 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.

sachinpkale avatar Apr 08 '24 09:04 sachinpkale

:x: Gradle check result for 7052acaf4be4af8a68ed1d4e50b4b50766435efb: 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?

github-actions[bot] avatar Apr 08 '24 09:04 github-actions[bot]

Compatibility status:

Checks if related components are compatible with change d097388

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/cross-cluster-replication.git, https://github.com/opensearch-project/observability.git, https://github.com/opensearch-project/job-scheduler.git, https://github.com/opensearch-project/security-analytics.git, https://github.com/opensearch-project/opensearch-oci-object-storage.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/ml-commons.git, https://github.com/opensearch-project/reporting.git, https://github.com/opensearch-project/sql.git, https://github.com/opensearch-project/common-utils.git, https://github.com/opensearch-project/index-management.git, https://github.com/opensearch-project/anomaly-detection.git, https://github.com/opensearch-project/security.git, https://github.com/opensearch-project/alerting.git, https://github.com/opensearch-project/performance-analyzer-rca.git, https://github.com/opensearch-project/performance-analyzer.git]

github-actions[bot] avatar Apr 08 '24 09:04 github-actions[bot]

:white_check_mark: Gradle check result for a4cc193f156f4dc85c0ef909d10c29ac7982cfd0: SUCCESS

github-actions[bot] avatar Apr 08 '24 11:04 github-actions[bot]

Codecov Report

Attention: Patch coverage is 44.18605% with 24 lines in your changes missing coverage. Please review.

Project coverage is 71.36%. Comparing base (b15cb0c) to head (a4cc193). Report is 443 commits behind head on main.

:exclamation: Current head a4cc193 differs from pull request most recent head d097388

Please upload reports for the commit d097388 to get more accurate results.

Files Patch % Lines
...earch/index/store/RemoteSegmentStoreDirectory.java 41.66% 13 Missing and 1 partial :warning:
...in/java/org/opensearch/index/shard/IndexShard.java 27.27% 6 Missing and 2 partials :warning:
...va/org/opensearch/indices/RemoteStoreSettings.java 66.66% 2 Missing :warning:
Additional details and impacted files
@@             Coverage Diff              @@
##               main   #13114      +/-   ##
============================================
- Coverage     71.42%   71.36%   -0.06%     
- Complexity    59978    60453     +475     
============================================
  Files          4985     5026      +41     
  Lines        282275   284553    +2278     
  Branches      40946    41218     +272     
============================================
+ Hits         201603   203072    +1469     
- Misses        63999    64704     +705     
- Partials      16673    16777     +104     

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

codecov[bot] avatar Apr 08 '24 11:04 codecov[bot]

:x: Gradle check result for 9cef8ae085e544bd068d758b47dcce3c1986238c: 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?

github-actions[bot] avatar Apr 09 '24 04:04 github-actions[bot]

:x: Gradle check result for a9d1269c40be4022a6ff7e127793f11447f4006c: 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?

github-actions[bot] avatar Apr 09 '24 05:04 github-actions[bot]

:x: Gradle check result for 84557bc6ab633d37e578a1ed1da812c5157f3253: 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?

github-actions[bot] avatar Apr 09 '24 05:04 github-actions[bot]

:x: Gradle check result for d605254f50f89f45153a52dbae19f2634f8d6c4b: 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?

github-actions[bot] avatar Apr 09 '24 08:04 github-actions[bot]

:x: Gradle check result for a2cb249c83e9251dbd3b9c6d37aee19877544218: 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?

github-actions[bot] avatar Apr 11 '24 06:04 github-actions[bot]

:x: Gradle check result for 65656af33659f0e25d7d7c13ab0b5825c01740b8: 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?

github-actions[bot] avatar Apr 12 '24 10:04 github-actions[bot]

:x: Gradle check result for 40206cbe27e85f5e9a834a364bdf3991a6944a6e: 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?

github-actions[bot] avatar Apr 12 '24 10:04 github-actions[bot]

:x: Gradle check result for d09738820ea615ced49aa90abacbc3f2abd2b45a: 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?

github-actions[bot] avatar Apr 16 '24 11:04 github-actions[bot]

@sachinpkale can we please tag this to an opensearch release?

rramachand21 avatar Apr 16 '24 17:04 rramachand21

[Storage Triage - attendees 1 2 3 4 5 6 7 8 9 10 11 12 13]

@sachinpkale Thanks for opening this PR. Lets resolve the conflicts and update the new release target label

linuxpi avatar May 02 '24 15:05 linuxpi

This PR is stalled because it has been open for 30 days with no activity.

This PR is stalled because it has been open for 30 days with no activity.