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


##########
pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/PinotSegmentRestletResource.java:
##########
@@ -884,6 +865,47 @@ public SuccessResponse deleteSegments(
     }
   }
 
+  @DELETE
+  @Consumes(MediaType.APPLICATION_JSON)
+  @Produces(MediaType.APPLICATION_JSON)
+  @Path("/segments/{tableName}/select")
+  @Authenticate(AccessType.DELETE)
+  @ApiOperation(value = "Delete select segments. An optional 
'excludeReplacedSegments' parameter is used to get the"
+      + " list of segments which has not yet been replaced (determined by 
segment lineage entries) and can be queried"
+      + " from the table. The value is false by default.",
+      // TODO: more and more filters can be added later on, like 
excludeErrorSegments, excludeConsumingSegments, etc.
+      notes = "List all segments")
+  public SuccessResponse deleteSegmentsWithTimeWindow(
+      @ApiParam(value = "Name of the table", required = true) 
@PathParam("tableName") String tableName,
+      @ApiParam(value = "OFFLINE|REALTIME") @QueryParam("type") String 
tableTypeStr,
+      @ApiParam(value = "Whether to keep replaced segments, which have been 
replaced"
+          + " specified in the segment lineage entries and cannot be queried 
from the table, false by default")
+      @QueryParam("excludeReplacedSegments") @DefaultValue("false") boolean 
excludeReplacedSegments,
+      @ApiParam(value = "Start timestamp (inclusive)") 
@QueryParam("startTimestamp") @DefaultValue("")
+          String startTimestampStr,
+      @ApiParam(value = "End timestamp (exclusive)") 
@QueryParam("endTimestamp") @DefaultValue("")
+          String endTimestampStr,
+      @ApiParam(value = "Whether to keep segments overlapping with the [start, 
end) from deletion, true by default")
+      @QueryParam("excludeOverlapping") @DefaultValue("true") boolean 
excludeOverlapping,

Review Comment:
   IIUC, the excludeOverlapping here means exclude partially overlapped 
segments.
   
   Let say the segment's min and max time is [100L, 200L]. And the input 
[start_time, end time] is [150L, 250L]. Since segment contains some data before 
150L, I guess customer prefer not deleting this segment, and thus I set the 
default value to true, indicating "partial overlapping segments won't be 
delelted"



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