设计笔记
Agent 负载设计
为什么 agent 负载对文件系统的压力不一样。
Agent 负载不是简单的顺序读取:
- Agent 不是顺序读取者。 它们反复进行小块读取、局部写入、目录扫描、元数据查询 与产物更新。
- Agent 持续扫描项目结构。 遍历、stat、open、read、write、rename。
- Agent 产生大量中间文件。 计划、日志、补丁、工具输出、报告、缓存、索引。
- Agent 共享状态。 一个 agent 的输出是另一个 agent 的输入 — 文件系统成为协作层。
- 更多 agent 会放大随机 IO。 并发会成倍放大元数据压力与工作区更新。
BrewFS 的设计回应:共享的类 POSIX 命名空间、为 RandRW 优化的数据路径,以及为并发 访问选型的元数据后端。

