GitHub 公布了新的 Git 存储架构(内部代号 Rubicon),称内部测试里能支持 5000 个并发 agent 在同一个仓库上工作、每秒 7200 次 push。设计的出发点是上一篇文章留下的一句观察:一次写入里真正需要排序的部分非常少——Git 对象不可变且按内容命名,两个写者可以互不知情地同时写入;需要达成一致的只有引用更新,而引用更新的数据量极小。于是对象数据(pack、多 pack 索引、可达性位图)放 Azure Blob Storage,引用与 pack 清单放新的复制日志服务 Ref-CAS。他们试过两个纯对象存储方案:把全部引用写成单个 blob 的 WAL 只能串行条件写,实际吞吐每秒几百;把引用拆成多个段 blob 能让写并行,但读要检查所有段、只跟最慢那段一样快,而读比写多几个数量级。Ref-CAS 用多数派提交、只锁涉及的引用、只存指针不存对象数据,能做到每秒数万次引用事务。读路径是一次版本比对:虚拟副本报上自己持有的版本,仍是当前版本就一个引用都不回。压实与垃圾回收搬到独立后台节点,用 lease 认领分片、按 pack 哈希分 shard,因此加节点即加吞吐。目标是所有仓库跑同一套架构,半夜被 agent 舰队点着的个人项目也不用迁移。