-
Couldn't load subscription status.
- Fork 1.4k
Re-ingest COMMITTING LLC segments when pauseless is disabled #16811
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
base: master
Are you sure you want to change the base?
Re-ingest COMMITTING LLC segments when pauseless is disabled #16811
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #16811 +/- ##
============================================
- Coverage 63.47% 63.47% -0.01%
Complexity 1424 1424
============================================
Files 3086 3086
Lines 182340 182355 +15
Branches 27979 27981 +2
============================================
- Hits 115746 115743 -3
- Misses 57662 57687 +25
+ Partials 8932 8925 -7
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
f9ddae8 to
50cd487
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.
lgtm
...ain/java/org/apache/pinot/controller/helix/core/realtime/PinotLLCRealtimeSegmentManager.java
Outdated
Show resolved
Hide resolved
50cd487 to
241ead5
Compare
241ead5 to
d3f1043
Compare
...ain/java/org/apache/pinot/controller/helix/core/realtime/PinotLLCRealtimeSegmentManager.java
Outdated
Show resolved
Hide resolved
...r/src/main/java/org/apache/pinot/controller/validation/RealtimeSegmentValidationManager.java
Outdated
Show resolved
Hide resolved
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.
Pull Request Overview
This PR extends segment re-ingestion capabilities to work for all realtime tables, not just those with pauseless consumption enabled. The change allows the controller to re-ingest COMMITTING LLC segments when pauseless consumption is disabled, while maintaining safety for partial upsert and deduplication scenarios.
Key Changes
- Modified RealtimeSegmentValidationManager to always call repair method regardless of pauseless status
- Updated logging and error handling in PinotLLCRealtimeSegmentManager for better clarity
- Added comprehensive unit tests to verify the behavior for both pauseless enabled and disabled scenarios
Reviewed Changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| RealtimeSegmentValidationManager.java | Removes pauseless consumption check and always calls repair method |
| PinotLLCRealtimeSegmentManager.java | Improves logging messages and error handling flow |
| RealtimeSegmentValidationManagerTest.java | Adds unit tests for both pauseless enabled/disabled scenarios and reformats existing test data |
...ain/java/org/apache/pinot/controller/helix/core/realtime/PinotLLCRealtimeSegmentManager.java
Outdated
Show resolved
Hide resolved
9479c6c to
4421d16
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.
Pull Request Overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.
| if (aliveServer == null) { | ||
| LOGGER.warn("No alive server found to re-ingest segment: {} in table: {}, skipping re-ingestion", segmentName, | ||
| realtimeTableName); | ||
| LOGGER.warn("No alive server found to re-ingest segment: {} in table: {}", segmentName, realtimeTableName); |
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.
nit: was there some reason to remove ", skipping re-ingestion"? seems to be easier to understand the log if this is included, right?
|
I have fixed some bugs in method: Will request to wait before merging this PR. |
f255a74 to
2f22da2
Compare
d8afa42 to
2a1987b
Compare
…ant reingest method - Reuse repairSegmentsInErrorStateForPauselessConsumption() to repair errored segments for both pauseless and non-pauseless tables - Remove reingestCommittingSegmentsForPauselessDisabled() and route call sites to the shared repair flow - Keep a single reingestion entrypoint: reingestSegment(table, segment, instances) with simple predicates (hasOnlineInstance, maybeResetIfNotInProgress) - Update RealtimeSegmentValidationManager to always invoke the shared repair flow (and preserve optional auto-reset behavior) - Adjust RealtimeSegmentValidationManagerTest expectations accordingly Behavioral notes: - Only re-ingests COMMITTING LLC segments with start/end offsets and no download URL when all replicas are in ERROR and the segment is ONLINE in IdealState - Otherwise resets segments not in IN_PROGRESS to fetch from deep store/peer - Applies only to tables without dedup or partial upsert unless explicitly allowed via allowRepairOfErrorSegments()
2a1987b to
cec9993
Compare
Controller: re-ingest COMMITTING LLC segments when pauseless is disabled.
Add PinotLLCRealtimeSegmentManager#reingestCommittingSegmentsForPauselessDisabled() and wire from RealtimeSegmentValidationManager when pauseless=false
Target only COMMITTING LLC segments with start/end offsets and no download URL that are ONLINE in IS
Respect partial upsert/dedup safety via allowRepairOfErrorSegments
Add unit tests in RealtimeSegmentValidationManagerTest
Build: checkstyle clean, targeted unit test passing.