-
Notifications
You must be signed in to change notification settings - Fork 2.3k
[merged segment warmer] support local merged segment warmer #18255
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
[merged segment warmer] support local merged segment warmer #18255
Conversation
Signed-off-by: guojialiang <[email protected]>
|
❌ Gradle check result for aa13d96: 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? |
Signed-off-by: guojialiang <[email protected]>
|
❌ Gradle check result for 1c1f802: 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? |
|
❌ Gradle check result for 78795e3: 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? |
Signed-off-by: guojialiang <[email protected]>
78795e3 to
58528e9
Compare
server/src/main/java/org/opensearch/index/engine/LocalMergedSegmentWarmer.java
Outdated
Show resolved
Hide resolved
|
❌ Gradle check result for d2df443: 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? |
Signed-off-by: guojialiang <[email protected]>
d2df443 to
a0b4e3a
Compare
|
❌ Gradle check result for a0b4e3a: 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? |
…ged-segment-warmer
|
❌ Gradle check result for cc5ea0b: 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? |
Signed-off-by: guojialiang <[email protected]>
|
❌ Gradle check result for dedad5e: 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? |
Signed-off-by: guojialiang <[email protected]>
|
❌ Gradle check result for 3224f35: 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? |
|
Re-triggered the PR build. |
|
❌ Gradle check result for 3224f35: 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? |
Hi, @ashking94 |
|
I think I found the reason why the test fails. It seems that the test is not robust. I copied some exception logs from gradle test, which also proves this point. |
ashking94
left a comment
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.
Looks good, Thanks!
|
I have re-triggered the test. We can merge it after it becomes green. |
|
❌ Gradle check result for 3224f35: 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? |
Hi, @ashking94 It seems to be the same issue. Can we merge bugfix PR first and then run the gradle test? |
|
@guojialiang92 can you rebase with main now? |
Yeah |
…ged-segment-warmer
|
@ashking94 |
…ch-project#18255) * support local merged segment warmer Signed-off-by: guojialiang <[email protected]> * update log Signed-off-by: guojialiang <[email protected]> * fix test Signed-off-by: guojialiang <[email protected]> * add tests Signed-off-by: guojialiang <[email protected]> * IndexShard support getActiveReplicaNodes Signed-off-by: guojialiang <[email protected]> * add test Signed-off-by: guojialiang <[email protected]> * add pre-verification. Signed-off-by: guojialiang <[email protected]> * extend ReplicationAction instead of ActionRequest Signed-off-by: guojialiang <[email protected]> * reuse Store#getSegmentMetadataMap Signed-off-by: guojialiang <[email protected]> * refactor updateReplicationRateLimiter Signed-off-by: guojialiang <[email protected]> * extract an abstract base class (AbstractSegmentReplicationTarget) from SegmentReplicationTarget Signed-off-by: guojialiang <[email protected]> * reduce unnecessary exception judgment Signed-off-by: guojialiang <[email protected]> * fix UT Signed-off-by: guojialiang <[email protected]> * add PublishMergedSegmentActionTests Signed-off-by: guojialiang <[email protected]> * gradle spotlessApply Signed-off-by: guojialiang <[email protected]> * add test Signed-off-by: guojialiang <[email protected]> * rename ReplicationSegmentCheckpoint to MergeSegmentCheckpoint Signed-off-by: guojialiang <[email protected]> * add some description Signed-off-by: guojialiang <[email protected]> * refactor code Signed-off-by: guojialiang <[email protected]> * extract an abstract base class (AbstractPublishCheckpointAction) from PublishCheckpointAction Signed-off-by: guojialiang <[email protected]> * fix :server:japicmp Signed-off-by: guojialiang <[email protected]> * update Signed-off-by: guojialiang <[email protected]> * update Signed-off-by: guojialiang <[email protected]> --------- Signed-off-by: guojialiang <[email protected]>
Description
This PR is based on [17881]'s follow-up work. It implements the core process of local merged segment warmer, and the main modifications are as follows:
IndexReaderWarmer#warm, the primary shard will send send aPublishMergedSegmentRequestrequest containing information about the merged segment (ReplicationSegmentCheckpointis introduced to represent the information of a merged segment) to all active state replicas.MergedSegmentReplicationTargetto pull segment from the primary shard. It has to reuse most of the capabilities inSegmentReplicationTarget. TheIndexReaderWarmer#warmprocess will not end until all active state replicas have completed pulling merged segment.There are also some orthogonal work that needs to be supported in the future, summarized as follows:
Related Issues
Resolves #[17528]
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.