vishal
11/15/2022, 9:22 AMNeha Pawar
Neha Pawar
vishal
11/16/2022, 9:15 AMvishal
11/16/2022, 9:22 AMretentionHours
can you please help me where should i add that in realtime table config?Neha Pawar
vishal
11/17/2022, 4:58 AMNeha Pawar
Neha Pawar
vishal
11/17/2022, 5:13 AMvishal
11/17/2022, 5:14 AMvishal
11/17/2022, 8:17 AMSeunghyun
11/17/2022, 8:19 AMvishal
11/17/2022, 8:19 AM"task": {
"taskTypeConfigsMap": {
"RealtimeToOfflineSegmentsTask": {
"bufferTimePeriod": "3m",
"bucketTimePeriod": "5m",
"schedule": "0 */1 * * * ?",
"mergeType": "dedup",
"maxNumRecordsPerSegment": "10"
}
}
},Seunghyun
11/17/2022, 8:19 AMbufferTimePeriod is passedSeunghyun
11/17/2022, 8:19 AMone more issue i found out is i am able to see completed segment in realtime but its not pushing to offline till i push new data to realtimevishal
11/17/2022, 8:20 AMSeunghyun
11/17/2022, 8:20 AMSeunghyun
11/17/2022, 8:20 AM"schedule": "0 */1 * * * ?",Seunghyun
11/17/2022, 8:20 AMvishal
11/17/2022, 8:20 AMvishal
11/17/2022, 8:21 AMSeunghyun
11/17/2022, 8:21 AMSeunghyun
11/17/2022, 8:21 AMvishal
11/17/2022, 8:22 AMvishal
11/17/2022, 8:22 AMExecute CronJob: table - tab5_REALTIME, task - RealtimeToOfflineSegmentsTask at 2022-11-17T08:22:00.001+0000
Start generating task configs for table: tab5_REALTIME for task: RealtimeToOfflineSegmentsTask
Window data overflows into CONSUMING segments for partition of segment: tab5__0__15__20221117T0810Z. Skipping task generation: RealtimeToOfflineSegmentsTask
Finished CronJob: table - tab5_REALTIME, task - RealtimeToOfflineSegmentsTask, next runtime is 2022-11-17T08:23:00.000+0000vishal
11/17/2022, 8:23 AMvishal
11/17/2022, 8:24 AMSeunghyun
11/17/2022, 8:25 AMSeunghyun
11/17/2022, 8:25 AMvishal
11/17/2022, 8:27 AM"tab5__0__14__20221117T0810Z": {
"Server_pinot-server-0.pinot-server-headless.default.svc.cluster.local_8098": "ONLINE"
},vishal
11/22/2022, 5:06 AMSeunghyun
11/22/2022, 6:18 AM// Check overlap with window
if (windowStartMs <= segmentEndTimeMs && segmentStartTimeMs < windowEndMs) {
// If last completed segment is being used, make sure that segment crosses over end of window.
// In the absence of this check, CONSUMING segments could contain some portion of the window. That data
// would be skipped forever.
if (lastLLCSegmentPerPartition.contains(segmentName) && segmentEndTimeMs < windowEndMs) {
<http://LOGGER.info|LOGGER.info>("Window data overflows into CONSUMING segments for partition of segment: {}. Skipping task "
+ "generation: {}", segmentName, taskType);
skipGenerate = true;
break;
}
segmentNames.add(segmentName);
downloadURLs.add(segmentZKMetadata.getDownloadUrl());
}
I think that we are hitting this check but in production, the realtime-to-offline will continuously move data to offline correctly because there will be data flow in constantly. Also, we always query both offline/realtime tables so query result correctness will always be the same. So, I would say that it’s behaving as expected but we are not promoting the last bucket to offline because
1. last completed segment’s end time is less than windowEndMs
2. No more data after this so that there’s no event that would trigger the window bumpvishal
11/22/2022, 6:22 AM