[Pull-based Ingestion] Support segment replication for pull-based ingestion#17359
[Pull-based Ingestion] Support segment replication for pull-based ingestion#17359mch2 merged 4 commits intoopensearch-project:mainfrom
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 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
andrross
left a comment
There was a problem hiding this comment.
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 |
msfroh
left a comment
There was a problem hiding this comment.
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. |
|
@varunbharadwaj , @yupeng9 : Are we only supporting only segrep with pull based ingestion ? |
Yes, the plan is to start with segrep. We will probably explore multi-node ingestion in the future, but is still in discussion. |
…estion (opensearch-project#17359) Signed-off-by: Vinay Krishna Pudyodu <vinkrish.neo@gmail.com>
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.