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]