apache / pinot

Apache Pinot - A realtime distributed OLAP datastore
https://pinot.apache.org/
Apache License 2.0
5.26k stars 1.23k forks source link

Allowing segment upload to deepstore via minions rather than controller APIs #12775

Open tibrewalpratik17 opened 3 months ago

tibrewalpratik17 commented 3 months ago

Currently, when a minion node processes a segment it calls uploadSegmentAsMultiPart API of controller. The controller processes and uploads the segment to deepstore and then issues a refresh call to the respective servers. https://github.com/apache/pinot/blob/4abb2d18f733781539d2d72ab75e1bb03c197489/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/PinotSegmentUploadDownloadRestletResource.java#L546

Raising this issue to gather the following context:

One of the ideas to resolve this:

cc @ankitsultana

wirybeaver commented 2 months ago

@tibrewalpratik17 Actually all controller regular jobs should have be placed in minion. I also have a requirement to place the job of deleting tmp deep store files in minion for better scaling up.