robertzych commented on code in PR #10463: URL: https://github.com/apache/pinot/pull/10463#discussion_r1238873020
########## pinot-core/src/main/java/org/apache/pinot/core/data/manager/realtime/RealtimeTableDataManager.java: ########## @@ -489,14 +489,16 @@ static void setDefaultTimeValueIfInvalid(TableConfig tableConfig, Schema schema, @Override public void addSegment(ImmutableSegment immutableSegment) { - if (isUpsertEnabled()) { - handleUpsert(immutableSegment); - return; - } + if (immutableSegment instanceof ImmutableSegmentImpl) { Review Comment: @Jackie-Jiang To avoid uploading an empty compacted segment and instead delete the segment, I propose the following changes: 1. Update `UpsertCompactionTaskExecutor.convert` to return an `EmptySegmentConversionResult` (a new type of `SegmentConversionResult`) if `validDocIds.isEmpty()` 2. Update `BaseSingleSegmentConversionExecutor.executeTask` to call `SegmentConversionUtils.deleteSegment` (a new util method) and return if `segmentConversionResult` is an `EmptySegmentConversionResult` 3. Add deleteSegment to SegmentConversionUtils and have it call the Controller API (ie delete /segments/{tableName}/{segmentName}) Please let me know if these changes look good to you, or if there's a better way. -- 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: commits-unsubscr...@pinot.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For additional commands, e-mail: commits-h...@pinot.apache.org