wirybeaver commented on code in PR #10815:
URL: https://github.com/apache/pinot/pull/10815#discussion_r1320445951


##########
pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/realtime/PinotLLCRealtimeSegmentManager.java:
##########
@@ -1465,6 +1469,72 @@ public void uploadToDeepStoreIfMissing(TableConfig 
tableConfig, List<SegmentZKMe
     }
   }
 
+  public long deleteTmpSegments(String tableNameWithType, 
List<SegmentZKMetadata> segmentsZKMetadata) {
+    Preconditions.checkState(!_isStopping, "Segment manager is stopping");
+
+    if (!TableNameBuilder.isRealtimeTableResource(tableNameWithType)) {
+      return 0L;
+    }
+
+    TableConfig tableConfig = 
_helixResourceManager.getTableConfig(tableNameWithType);
+    if (tableConfig == null) {
+      LOGGER.warn("Failed to find table config for table: {}, skipping 
deletion of tmp segments", tableNameWithType);
+      return 0L;
+    }
+
+    if (!isLowLevelConsumer(tableNameWithType, tableConfig)
+        || !getIsSplitCommitEnabled()
+        || !isTmpSegmentAsyncDeletionEnabled()) {
+      return 0L;
+    }
+
+    // Delete tmp segments for realtime table with low level consumer, split 
commit and async deletion is enabled.
+    Set<String> deepURIs = segmentsZKMetadata.stream().filter(meta -> 
meta.getStatus() == Status.DONE
+        && 
!CommonConstants.Segment.METADATA_URI_FOR_PEER_DOWNLOAD.equals(meta.getDownloadUrl())).map(

Review Comment:
   I think you might be confused by the comment above. 
METADATA_URI_FOR_PEER_DOWNLOAD is used to select deepURIs rather than judging 
the SplitCommit enabled or not. SplitCommitEnabled is already judged before
   ```
       if (!isLowLevelConsumer(tableNameWithType, tableConfig)
           || !getIsSplitCommitEnabled()
           || !isTmpSegmentAsyncDeletionEnabled()) {
         return 0L;
       }
   ```



-- 
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]

Reply via email to