
上一篇我们顺着写入链路,看到了 Segment 如何从 WAL 消息进入内存 buffer,如何被 flush 成 binlog、deltalog、statslog、bm25log,并最终由 DataCoord 的SaveBinlogPaths记录到元数据里。这一章继续往后走。当 Segment 已经落盘之后,Milvus 还不能简单地说“写入完成,结束”。原因很直接:新的 Segment 需要构建索引,否则查询性能会受到影响。小 Segment、删除日志、历史版本数据需要被 Compaction 整理。Bulk Import 会绕过普通 Insert 链路,但仍然要生成 Segment、写 binlog、建索引、提交可见性。这些任务都可能很重,不能阻塞前台请求。所以 DataCoord 的核心价值不是“写文件”,而是管理数据后台任务。本章会从源码角度拆解 DataCoord 如何协调:Segment 元数据。Index 构建任务。Import 导入任务。Compaction 压缩任务。统一后台任务调度器globalScheduler。1. 本章学习目标读完本章,你需要能回答这些问题:DataCoord 的Server