Affects Version/s: None
Fix Version/s: None
In BlockManagerWorker#readBlock, operations for (1) sending location request to the master, and (2) fetching data from a peer executor are chained with CompletedFuture#thenCompose.
blockLocationFuture.thenCompose(responseFromMaster -> // chain
My concern is that it is not intuitive which thread executes this piece of code, and what that implies. My guess is that
- Task executor thread request to the master
- A network thread handles reply from the master
- The network thread then triggers the data transfer
We may want to decouple 2. and 3., and instead use explicit threading.