-
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
Make RemoteStoreReplicationSource#getSegmentFiles asynchronous #10725
Make RemoteStoreReplicationSource#getSegmentFiles asynchronous #10725
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
Compatibility status:Checks if related components are compatible with change cd06a0d Incompatible componentsSkipped componentsCompatible componentsCompatible components: [https://github.com/opensearch-project/security-analytics.git, https://github.com/opensearch-project/security.git, https://github.com/opensearch-project/custom-codecs.git, https://github.com/opensearch-project/alerting.git, https://github.com/opensearch-project/opensearch-oci-object-storage.git, https://github.com/opensearch-project/index-management.git, https://github.com/opensearch-project/anomaly-detection.git, https://github.com/opensearch-project/geospatial.git, https://github.com/opensearch-project/asynchronous-search.git, https://github.com/opensearch-project/sql.git, https://github.com/opensearch-project/job-scheduler.git, https://github.com/opensearch-project/notifications.git, https://github.com/opensearch-project/observability.git, https://github.com/opensearch-project/common-utils.git, https://github.com/opensearch-project/k-nn.git, https://github.com/opensearch-project/neural-search.git, https://github.com/opensearch-project/reporting.git, https://github.com/opensearch-project/cross-cluster-replication.git, https://github.com/opensearch-project/performance-analyzer.git, https://github.com/opensearch-project/performance-analyzer-rca.git, https://github.com/opensearch-project/ml-commons.git] |
This comment was marked as outdated.
This comment was marked as outdated.
5f4e916
to
02172cc
Compare
This comment was marked as outdated.
This comment was marked as outdated.
Gradle Check (Jenkins) Run Completed with:
|
Gradle Check (Jenkins) Run Completed with:
|
Also make the remote store download process cancellable in case the replication event is canceled. Signed-off-by: Andrew Ross <[email protected]>
… metadata and segment fetch steps. Signed-off-by: Marc Handalian <[email protected]>
Signed-off-by: Marc Handalian <[email protected]>
Signed-off-by: Marc Handalian <[email protected]>
Signed-off-by: Marc Handalian <[email protected]>
Signed-off-by: Marc Handalian <[email protected]>
f5519ec
to
cd06a0d
Compare
Gradle Check (Jenkins) Run Completed with:
|
|
Gradle Check (Jenkins) Run Completed with:
|
Codecov Report
@@ Coverage Diff @@
## main #10725 +/- ##
============================================
+ Coverage 71.11% 71.15% +0.04%
- Complexity 58530 58535 +5
============================================
Files 4854 4854
Lines 276049 276066 +17
Branches 40168 40170 +2
============================================
+ Hits 196311 196448 +137
+ Misses 63385 63214 -171
- Partials 16353 16404 +51
|
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.
This looks good to me! But I authored one of the commits in this PR so I'd love to have approval from another maintainer.
server/src/main/java/org/opensearch/indices/replication/common/ReplicationTarget.java
Show resolved
Hide resolved
* Make RemoteStoreReplicationSource#getSegmentFiles asynchronous Also make the remote store download process cancellable in case the replication event is canceled. Signed-off-by: Andrew Ross <[email protected]> * Add ITs ensuring segRep targets are cleaned up on cancellation during metadata and segment fetch steps. Signed-off-by: Marc Handalian <[email protected]> * Wrap metadata fetch in cancellableThreads.executeIO Signed-off-by: Marc Handalian <[email protected]> * self review Signed-off-by: Marc Handalian <[email protected]> * spotless Signed-off-by: Marc Handalian <[email protected]> * Add missing node settings when bootstrapping nodes in tests. Signed-off-by: Marc Handalian <[email protected]> --------- Signed-off-by: Andrew Ross <[email protected]> Signed-off-by: Marc Handalian <[email protected]> Co-authored-by: Andrew Ross <[email protected]> (cherry picked from commit 41a12e2) Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
… (#10771) * Make RemoteStoreReplicationSource#getSegmentFiles asynchronous Also make the remote store download process cancellable in case the replication event is canceled. * Add ITs ensuring segRep targets are cleaned up on cancellation during metadata and segment fetch steps. * Wrap metadata fetch in cancellableThreads.executeIO * self review * spotless * Add missing node settings when bootstrapping nodes in tests. --------- (cherry picked from commit 41a12e2) Signed-off-by: Andrew Ross <[email protected]> Signed-off-by: Marc Handalian <[email protected]> Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Andrew Ross <[email protected]>
…earch-project#10725) * Make RemoteStoreReplicationSource#getSegmentFiles asynchronous Also make the remote store download process cancellable in case the replication event is canceled. Signed-off-by: Andrew Ross <[email protected]> * Add ITs ensuring segRep targets are cleaned up on cancellation during metadata and segment fetch steps. Signed-off-by: Marc Handalian <[email protected]> * Wrap metadata fetch in cancellableThreads.executeIO Signed-off-by: Marc Handalian <[email protected]> * self review Signed-off-by: Marc Handalian <[email protected]> * spotless Signed-off-by: Marc Handalian <[email protected]> * Add missing node settings when bootstrapping nodes in tests. Signed-off-by: Marc Handalian <[email protected]> --------- Signed-off-by: Andrew Ross <[email protected]> Signed-off-by: Marc Handalian <[email protected]> Co-authored-by: Andrew Ross <[email protected]>
…earch-project#10725) * Make RemoteStoreReplicationSource#getSegmentFiles asynchronous Also make the remote store download process cancellable in case the replication event is canceled. Signed-off-by: Andrew Ross <[email protected]> * Add ITs ensuring segRep targets are cleaned up on cancellation during metadata and segment fetch steps. Signed-off-by: Marc Handalian <[email protected]> * Wrap metadata fetch in cancellableThreads.executeIO Signed-off-by: Marc Handalian <[email protected]> * self review Signed-off-by: Marc Handalian <[email protected]> * spotless Signed-off-by: Marc Handalian <[email protected]> * Add missing node settings when bootstrapping nodes in tests. Signed-off-by: Marc Handalian <[email protected]> --------- Signed-off-by: Andrew Ross <[email protected]> Signed-off-by: Marc Handalian <[email protected]> Co-authored-by: Andrew Ross <[email protected]> Signed-off-by: Shivansh Arora <[email protected]>
Description
This change makes Make RemoteStoreReplicationSource#getSegmentFiles asynchronous.
It also ensures that SegmentReplicationTargets are properly closed during cancellation with remote store enabled if the cancel is issued during a file download.
Related Issues
Resolves #8089
Resolves #10619
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.