tarun11Mavani commented on code in PR #17197:
URL: https://github.com/apache/pinot/pull/17197#discussion_r2541221859


##########
pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/PinotSegmentRestletResource.java:
##########
@@ -466,6 +466,89 @@ public SuccessResponse resetSegments(
     }
   }
 
+  @POST
+  @Path("segments/{tableNameWithType}/uploadFromServerToDeepstore")
+  @Authorize(targetType = TargetType.TABLE, paramName = "tableNameWithType", 
action = Actions.Table.UPLOAD_SEGMENT)
+  @Authenticate(AccessType.UPDATE)
+  @Produces(MediaType.APPLICATION_JSON)
+  @ApiOperation(value = "Upload realtime segments from server to deep store",
+      notes = "Uploads realtime segments from servers (with online replicas) 
to deep store. "
+          + "When forceMode=false (default), only uploads segments missing 
from deep store. "

Review Comment:
   
   No, when forceMode=false (default), the code only checks if the download URL 
is missing (empty string), indicatin no deep store copy exists. It does not 
download and verify the CRC of existing deep store segments against ZK 
metadata. (Existing behaviour)
    
   When forceMode=true, it bypasses all checks and forces re-upload regardless 
of whether the deep store copy exists or its CRC value. This is the intended 
use case for handling suspected corruption - operators must explicitly use 
forceMode=true to re-upload segments with potentially mismatched CRCs.



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