-
Notifications
You must be signed in to change notification settings - Fork 2k
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
[Pull-based Ingestion] Support segment replication for pull-based ingestion #17359
Conversation
❌ Gradle check result for 7a682ef: 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? |
server/src/main/java/org/opensearch/index/engine/IngestionEngine.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/opensearch/index/engine/IngestionEngine.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/opensearch/index/engine/IngestionEngine.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/opensearch/index/engine/IngestionEngine.java
Outdated
Show resolved
Hide resolved
7a682ef
to
cea42e1
Compare
❌ Gradle check result for bc9716c: 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? |
b758603
to
a7c7a99
Compare
❌ Gradle check result for a7c7a99: 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? |
a7c7a99
to
fae7e91
Compare
❌ Gradle check result for fae7e91: 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? |
server/src/main/java/org/opensearch/index/translog/EngineTranslogManager.java
Outdated
Show resolved
Hide resolved
fae7e91
to
22464ed
Compare
❌ Gradle check result for 22464ed: 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? |
22464ed
to
cb010fa
Compare
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 like there are some build failures here. FYI you should be able to run ./gradlew precommit
locally to find these before pushing your commit.
server/src/main/java/org/opensearch/index/translog/EngineTranslogManager.java
Outdated
Show resolved
Hide resolved
43e41f9
to
f56f90f
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #17359 +/- ##
============================================
+ Coverage 72.42% 72.53% +0.11%
- Complexity 65611 65675 +64
============================================
Files 5304 5304
Lines 304743 304464 -279
Branches 44189 44145 -44
============================================
+ Hits 220701 220840 +139
+ Misses 65888 65495 -393
+ Partials 18154 18129 -25 ☔ View full report in Codecov by Sentry. |
f56f90f
to
bb213a7
Compare
❌ Gradle check result for bb213a7: 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? |
…ecovery Signed-off-by: Varun Bharadwaj <varunbharadwaj1995@gmail.com>
Signed-off-by: Varun Bharadwaj <varunbharadwaj1995@gmail.com>
Signed-off-by: Varun Bharadwaj <varunbharadwaj1995@gmail.com>
Signed-off-by: Varun Bharadwaj <varunbharadwaj1995@gmail.com>
4a24e08
to
c5d7445
Compare
LGTM |
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 pretty reasonable to me as a first step. In the long run, I think I'd like to extract an abstract base class for both InternalEngine
and IngestionEngine
, but I think that belongs in another PR, since this one's already big enough.
Thanks, @varunbharadwaj!
Thanks for reviewing. Yeah, will create a follow up PR for the refactoring. |
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.
minor comment, lgtm!
Description
This PR is a follow up for pull-based-ingestion to support segment replication with remote store. The primary shard will ingest from the streaming source and replica shards will rely on segment replication.
This PR refactors IngestionEngine to inherit from InternalEngine to support replication, recovery and avoid duplicate code. Some of the changes required to support segRep and peer recovery are enhancing IngestionEngine to include required listeners, support working with NRTReplicationEngine, tracking latest index commits, prevent snapshotted index deletion, among many others. These changes are already available in InternalEngine, and can be reused by IngestionEngine after this change.
Integration tests are added to validate end-to-end pull-based ingestion with segment replication, peer recover, replica promotion and remote store.
Related Issues
Resolves #16929
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.