xiangfu0 commented on code in PR #20024:
URL: https://github.com/apache/pinot/pull/20024#discussion_r4366204270
##########
pinot-core/src/main/java/org/apache/pinot/core/data/manager/realtime/RealtimeSegmentDataManager.java:
##########
@@ -656,12 +734,16 @@ private boolean processStreamEvents(MessageBatch
messageBatch, long idlePipeSlee
throw new RuntimeException("Realtime segment full");
}
- // Decode message
StreamMessage<?> streamMessage = messageBatch.getStreamMessage(index);
- StreamDataDecoderResult decodedRow =
_streamDataDecoder.decode(streamMessage);
StreamMessageMetadata metadata = streamMessage.getMetadata();
StreamPartitionMsgOffset offset = metadata.getOffset();
StreamPartitionMsgOffset nextOffset = metadata.getNextOffset();
+ if (reachedFinalOffsetBeforeMessage(messageBatch, nextOffset)) {
Review Comment:
Non-blocking: when this settles on `_finalOffset` mid-batch, the
`getUnfilteredMessageCount() > 0` branch below still calls
`updateIngestionMetrics(lastMetadata)` with the *last* (unconsumed, skipped)
message's timestamp, so freshness briefly reflects a row we didn't index. This
matches the existing endCriteria-mid-batch exit, so it's not a regression —
just worth confirming it's intended during catch-up.
--
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]