Make warmup settings dynamic for pull-based ingestion#20936
Conversation
ee35484 to
97fffc2
Compare
PR Reviewer Guide 🔍(Review updated until commit 9dcf919)Here are some key observations to aid the review process:
|
PR Code Suggestions ✨Latest suggestions up to 9dcf919 Explore these optional code suggestions:
Previous suggestionsSuggestions up to commit 678aa45
Suggestions up to commit 775437a
Suggestions up to commit 422d33c
Suggestions up to commit 714a8b5
Suggestions up to commit 1256a3a
|
|
❌ Gradle check result for 97fffc2: 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? |
d4f3eec to
397bc0b
Compare
|
Persistent review updated to latest commit 397bc0b |
|
❌ Gradle check result for 397bc0b: 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? |
397bc0b to
2fdf911
Compare
|
Persistent review updated to latest commit 2fdf911 |
Adds testUpdateWarmupConfigDisableWithRunningPoller which starts a poller with high lag (warmup never completes on its own), then dynamically disables warmup and verifies it completes via the updateWarmupStatus() disabled branch. This covers the previously uncovered 'warmup is disabled' path in updateWarmupStatus() and the updateWarmupConfig() method. Signed-off-by: Kaustubh Butte <kaustubhbutte17@gmail.com>
- Combine testUpdateWarmupConfigThresholdWhileInProgress and testUpdateWarmupConfigTimeoutWhileInProgress into single test that updates both values (varunbharadwaj) - Revert assertBusy in testWarmupPhase back to direct assertEquals since warmup guarantees docs are indexed before completion (varunbharadwaj) Signed-off-by: Kaustubh Butte <kaustubhbutte17@gmail.com>
- Fix testWarmupPhase: check polled count metric (proves warmup processed all messages) then use waitForSearchableDocs (handles async refresh) - Add testDynamicWarmupSettingsUpdate IT: verifies dynamic settings update via update settings API works end-to-end (covers IngestionEngine path) - Add testWarmupSkippedWhenPollerStartsInPausedState: covers the paused branch in updateWarmupStatus (poller starts paused, warmup is skipped) Signed-off-by: Kaustubh Butte <kaustubhbutte17@gmail.com>
Signed-off-by: Kaustubh Butte <kaustubhbutte17@gmail.com>
Signed-off-by: Kaustubh Butte <kaustubhbutte17@gmail.com>
Wait for poll loop to execute updateWarmupStatus() with disabled config, covering the '!warmupConfig.isEnabled()' branch (lines 461-470). Signed-off-by: Kaustubh Butte <kaustubhbutte17@gmail.com>
Signed-off-by: Kaustubh Butte <kaustubhbutte17@gmail.com>
Signed-off-by: Kaustubh Butte <kaustubhbutte17@gmail.com>
Signed-off-by: Kaustubh Butte <kaustubhbutte17@gmail.com>
Signed-off-by: Kaustubh Butte <kaustubhbutte17@gmail.com>
Signed-off-by: Kaustubh Butte <kaustubhbutte17@gmail.com>
totalProcessedCount is incremented in a separate processor thread and may lag behind the poller state. Only assert totalPolledCount which is synchronous with the poller state transition. Signed-off-by: Kaustubh Butte <kaustubhbutte17@gmail.com>
714a8b5 to
422d33c
Compare
|
Persistent review updated to latest commit 422d33c |
422d33c to
542fb18
Compare
Signed-off-by: Kaustubh Butte <kaustubhbutte17@gmail.com>
542fb18 to
775437a
Compare
|
Persistent review updated to latest commit 775437a |
server/src/test/java/org/opensearch/indices/pollingingest/DefaultStreamPollerTests.java
Show resolved
Hide resolved
|
Persistent review updated to latest commit 678aa45 |
678aa45 to
fcf52b6
Compare
Signed-off-by: Kaustubh Butte <kaustubhbutte17@gmail.com>
fcf52b6 to
9dcf919
Compare
|
Persistent review updated to latest commit 9dcf919 |
varunbharadwaj
left a comment
There was a problem hiding this comment.
Looks good to me. Thanks!
|
❕ Gradle check result for 9dcf919: UNSTABLE Please review all flaky tests that succeeded after retry and create an issue if one does not already exist to track the flaky failure. |
6082a2a
into
opensearch-project:main
…ject#20936) Make warmup settings dynamic for pull-based ingestion --------- Signed-off-by: Kaustubh Butte <kaustubhbutte17@gmail.com> Signed-off-by: Gagan Dhakrey <gagandhakrey@Gagans-MacBook-Pro.local>
Description
Follow-up to #20526. Changes the two warmup settings from
Final(immutable after index creation) toDynamic(updatable at runtime via the update settings API).This allows operators to adjust warmup behavior without recreating the index.
Settings Changed
index.ingestion_source.warmup.timeoutindex.ingestion_source.warmup.lag_thresholdUse Cases
Dynamic Update Behavior
Settings Propagation Path
Testing
testUpdateWarmupConfigDisableWhileInProgress- disabling warmup via config updatetestUpdateWarmupConfigDisableWithRunningPoller- disabling mid-warmup with running poller, verifies updateWarmupStatus disabled branchtestUpdateWarmupConfigThresholdAndTimeoutWhileInProgress- threshold and timeout update during warmuptestUpdateWarmupConfigDoesNotReEnableAfterCompletion- no re-trigger after shard is servingtestWarmupSkippedWhenPollerStartsInPausedState- paused poller skips warmuptestDynamicWarmupSettingsUpdate(IT) - end-to-end dynamic settings update via API