开发者社区> 问答> 正文

plitLocalRemoteBlocks方法的处理逻辑是什么?

plitLocalRemoteBlocks方法的处理逻辑是什么?

展开
收起
游客fbdr25iajcjto 2021-12-12 23:27:36 2402 0
1 条回答
写回答
取消 提交回答
  • 1) 遍历已经按照BlockManagerId分组的blockInfo,

    如果blockInfo所在的Executor与当前Executor相同,则将它的BlockId存入localBlocks;否则,将blockInfo的BlockId和size累加到curBlocks,将blockId存入remoteBlocks,curRequestSize增加size的大小,每当curRequestSize >= targetRequestSize,则新建FetchRequest放入remoteRequests,并且为生成下一个FetchRequest做一些准备(如新建curBlocks,curRequestSize置为0)。

    2) 遍历结束,

    curBlocks中如果仍然有缓存的(BlockId,Long),新建FetchRequest放入remoteRequests。此次请求不受maxBytesInFlight和targetRequestSize的影响。

    2021-12-12 23:28:27
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
继承与功能组合 立即下载
fibjs 模块重构从回调到协程--陈垒 立即下载
fibjs 模块重构从回调到协程 立即下载

相关实验场景

更多