-
Notifications
You must be signed in to change notification settings - Fork 2.3k
[Pull-based Ingestion] Update ingestion stream params to be dynamic #19963
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] Update ingestion stream params to be dynamic #19963
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #19963 +/- ##
============================================
- Coverage 73.25% 73.19% -0.07%
+ Complexity 71615 71570 -45
============================================
Files 5789 5789
Lines 327471 327511 +40
Branches 47168 47170 +2
============================================
- Hits 239905 239721 -184
- Misses 68315 68577 +262
+ Partials 19251 19213 -38 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Does this mean the update settings API will accept the new values but nothing will actually happen until the shard is somehow reinitialized? Seems potentially quite confusing as most (all?) dynamic settings in OpenSearch are applied right away.
Is it possible to close the index, update the settings, and reopen the index as an alternative that is less painful than recreating? |
Makes sense, i'll see if we can add a listener and swap the consumer dynamically similar to reset API
That should work, but will result in some downtime. |
@varunbharadwaj Doesn't the approach in this PR require some downtime as well since it requires a disruptive action like reset or reinitialization to apply the new settings? If we can make them fully dynamic then that is great, it's just this in-between state where you can update them but need to do something else to make them take effect that I have concerns about. |
Yeah, thinking we can create a new consumer with the new settings and swap with existing consumer. There will be downtime only on indexing side. Query should not be impacted. With the current approach, we will have to restart the nodes or relocate the shards. It should not have 100% downtime as in the case of closing the index. But I agree that it can be confusing, if it doesn't reflect immediately. |
dfb133b to
218fc82
Compare
server/src/main/java/org/opensearch/indices/pollingingest/DefaultStreamPoller.java
Show resolved
Hide resolved
9d56ce6 to
fcf362e
Compare
|
❌ Gradle check result for ff29901: 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 ff29901: 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 ff29901: 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: Varun Bharadwaj <[email protected]>
Signed-off-by: Varun Bharadwaj <[email protected]>
Signed-off-by: Varun Bharadwaj <[email protected]>
…alization Signed-off-by: Varun Bharadwaj <[email protected]>
Signed-off-by: Varun Bharadwaj <[email protected]>
Signed-off-by: Varun Bharadwaj <[email protected]>
ff29901 to
2e46e3b
Compare
Description
Note: If multiple writer threads are used, it is possible that the new consumer reprocess some messages as it starts from batchStartPointer, similar to shard recovery scenario. This aligns with pull-based ingestion's atleast once message processing guarantee.
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.