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

Reply via email to