noob-se7en commented on code in PR #15404:
URL: https://github.com/apache/pinot/pull/15404#discussion_r2019774668
##########
pinot-core/src/main/java/org/apache/pinot/core/data/manager/realtime/RealtimeTableDataManager.java:
##########
@@ -474,23 +473,26 @@ protected void doAddOnlineSegment(String segmentName)
SegmentDataManager segmentDataManager =
_segmentDataManagerMap.get(segmentName);
if (segmentDataManager == null) {
addNewOnlineSegment(zkMetadata, indexLoadingConfig);
- return;
- }
- if (segmentDataManager instanceof RealtimeSegmentDataManager) {
+ } else if (segmentDataManager instanceof RealtimeSegmentDataManager) {
_logger.info("Changing segment: {} from CONSUMING to ONLINE",
segmentName);
((RealtimeSegmentDataManager)
segmentDataManager).goOnlineFromConsuming(zkMetadata);
onConsumingToOnline(segmentName);
- return;
- }
- // For pauseless ingestion, the segment is marked ONLINE before it's built
and before the COMMIT_END_METADATA
- // call completes.
- // The server should replace the segment only after the CRC is set by
COMMIT_END_METADATA and the segment is
- // marked DONE.
- // This ensures the segment's download URL is available before discarding
the locally built copy, preventing
- // data loss if COMMIT_END_METADATA fails.
- if (zkMetadata.getStatus() == Status.DONE) {
+ } else if (zkMetadata.getStatus() == Status.DONE) {
+ // For pauseless ingestion, the segment is marked ONLINE before it's
built and before the COMMIT_END_METADATA
+ // call completes.
+ // The server should replace the segment only after the CRC is set by
COMMIT_END_METADATA and the segment is
+ // marked DONE.
+ // This ensures the segment's download URL is available before
discarding the locally built copy, preventing
+ // data loss if COMMIT_END_METADATA fails.
replaceSegmentIfCrcMismatch(segmentDataManager, zkMetadata,
indexLoadingConfig);
}
+ // Register the segment into the consumer coordinator if consumption order
is enforced.
+ if (_enforceConsumptionInOrder) {
+ LLCSegmentName llcSegmentName = LLCSegmentName.of(segmentName);
+ if (llcSegmentName != null) {
+
getConsumerCoordinator(llcSegmentName.getPartitionGroupId()).register(llcSegmentName);
Review Comment:
won't this mess up the watermark if
`consuming -> online` or `offline -> online` transitions are out of order?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]