Removed the abstract Transport in favor of separate HttpController and P2PController. They both own a reference to the Worker that handles query execution and downloads.
It also allowed to unify HTTP interface for both scenarios. However, in the P2P case the /query endpoint will always return NoAllocation error to avoid free execution.
What still needs to be done:
Consider moving allocations checking to the controller. Right now, the P2PController always uses Worker with RpcAllocationsChecker and HttpController uses Worker with NoopAllocationsChecker.
All the background tasks are now just join-ed instead of halting the execution as soon as one of the tasks finishes. I want to integrate this logic into the TaskManager and get it back after that.
Removed the abstract
Transport
in favor of separateHttpController
andP2PController
. They both own a reference to theWorker
that handles query execution and downloads. It also allowed to unify HTTP interface for both scenarios. However, in the P2P case the/query
endpoint will always returnNoAllocation
error to avoid free execution.What still needs to be done:
P2PController
always uses Worker withRpcAllocationsChecker
andHttpController
uses Worker withNoopAllocationsChecker
.join
-ed instead of halting the execution as soon as one of the tasks finishes. I want to integrate this logic into theTaskManager
and get it back after that.