为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
- 【TiDB 版本】:4.0.0
- 【问题描述】:
raftstore的源码解读中提到:
在 PeerStorage 的 handle_raft_ready 方法中,会将收集到 Ready 中的 Raft 日志收集到一个 WriteBatch 中,最终在 RaftPoller 的 end 方法中批量写入磁盘。而 Ready 中收集到的确认过的 Raft 日志,会被 apply_router 发送到 apply 线程中,由 ApplyBatchSystem 来处理。
请问 RaftBatchSystem 涉及的IO操作是同步的吗?
意思是在RaftPoller::end()中完成一个batch的写盘操作之后 该线程才会开始处理下一个batch?
另外源码解读中提到,日志的分发也需要走raftstore。意思是replicate涉及的网络io也走raftstore吗?