Git 基础设施重建:智能体规模开发下的读写解耦
Git 基础设施重建智能体规模开发下的读写解耦原文GitHub Blog - 《Building Git infrastructure for agent-scale development》https://github.blog/engineering/architecture-optimization/building-git-infrastructure-for-agent-scale-development/写 Agent 的人平时关心模型、提示词和工具设计很少有人往下再看一层Agent 每跑一步都要 commit 或 checkpoint这些写请求最后落到了哪里。GitHub 在 10 月 6 日发布的这篇技术博客把这件事讲透了——它们落在 Git 的存储层而且所有写入都要挤过同一条需要达成一致的路径。作者 Brian Celenza 是负责 GitHub 存储与核心服务的首席工程师。这篇文章拆解三件事规模数字说明了什么、读好扩、写难扩在智能体场景下具体卡在哪、新架构用什么方法把两者解开。一、三组数字Agent 把写负载推到了什么量级原文给出的数字不多但每一组都指向同一个方向。指标变化时间口径月度 Git 事件量218.2 亿 → 473.3 亿2025 年 9 月 → 2026 年 8 月翻倍以上月度 commit 量73.8 亿次2026 年 9 月是一年前的 5 倍以上月度 push 量6.9 亿 → 33.5 亿同比增长 4.9 倍PR 合并量接近一年前的 4 倍—GitHub Actions 运行次数32.6 亿次2026 年 9 月是一年前的 4 倍以上顺手做个量级换算按 30 天口径把上面的月度数字摊到秒473.3 亿次 Git 事件约等于每秒 18 万次73.8 亿次 commit 约等于每秒 2847 次32.6 亿次 Actions 运行约等于每秒 1258 次。这不是峰值是平均值。原文还提到一个常被忽略的分布特征8 月份 GitHub 上最忙的那个仓库单月大约收到 10 亿次请求。也就是说头部仓库和普通仓库之间的差距比大多数人想象的要大得多——而智能体开发恰好集中在头部。二、五个具体的瓶颈规模本身不是问题问题在于这种负载的形态。原文列了五条每一条对应一个不同的压力点。单次 push 的延迟变成智能体的速度上限。Agent 在一个紧循环里几乎每做一个动作就 commit 或 checkpoint它的推进速度被一次 push 要多久完成卡住。人类完全感知不到的延迟在这里成了限制因素。写吞吐的需求涨了两个数量级。push 同比增长 4.9 倍而同一个仓库里可能有几千个 Agent 各自在自己的分支上写这些写入最终会汇聚到架构里的同一点。合并争抢同一个引用。Trunk-based 开发、发布列车、合并队列都会把全部工作挤到一个必须吸收每次合并的 ref 上。一次 push 会放大成几千次读。CI 和代码扫描每分钟会反复 clone 或 fetch 同一个分支尖端这个扇出必须足够廉价。仓库维护本身也在变贵。为了保持操作快GitHub 要持续做数据压缩和失效对象清理而每一次新写入都会增加这份工作成本随量级叠加。这五条放在一起能解释为什么把 clone 做快只解决了一部分问题读相对容易扩写难得多。读可以加缓存、加副本把同样的字节发给更多客户端写则必须先把数据持久化、并保证一致性可见后面的人和 CI 才能在此基础上继续构建。三、现在的架构为什么在头部仓库撞到天花板理解新架构得先理解旧架构的耦合点。现在每个仓库由 Spokes 存储它把一份完整的仓库副本放在若干台文件服务器的本地磁盘上默认是 5 份。本地快盘让 Git 操作能以低延迟读到原生仓库数据多副本既提供冗余也把读负载分散到不同文件服务器上。当一次 push 更新引用时用一个三阶段提交协议配合仲裁保证 CI、Web 界面和 API 客户端看到一致的仓库状态。这套组合目前支撑着十亿量级的仓库。问题出在一句话上持久化机制和扩展机制是同一个机制。磁盘上的那些副本就是事实来源所以增加读容量就等于增加一个持久化副本而每个副本都要参与每一次写于是加读副本会让写更慢。极端情况下加副本给写带来额外开销丢副本会减少读容量丢仲裁则直接停写。对绝大多数仓库来说这个权衡完全可接受只有活动量最高的那一小撮会撞到它。但智能体开发恰好都挤在那一小撮里。四、新架构的两条原则原文把方案归结为两条分布式系统设计原则。第一条最小化协调。一次 push 里真正需要所有副本达成一致的其实只有引用更新这一步。存储底层对象、校验对象连通性、密钥扫描这些工作量大得多但它们大多可以和其他写入并行进行。把需要协调的路径压缩到最小的那一步其余工作就不再拖慢响应。配套的另一件事是把维护搬离服务路径。压缩和垃圾回收是仓库最重的工作之一而现在它们和响应实时 Git 请求用的是同一批主机。新架构里单独的 worker 直接对持久化存储做维护繁忙仓库可以在后台持续被优化不影响 push 和 fetch。第二条存储与计算解耦。现在的架构里本地磁盘上的完整副本同时扮演两个角色既是持久化存储又是响应 Git 请求的那一层。拆开之后各自独立扩展读容量来自轻量的缓存 worker权威副本放在下面的持久化存储层。这样 CI 扇出、Agent 集群、大 clone 带来的读尖峰不会给每次 push 增加额外工作。权威数据放在 Azure Blob Storage持久性和复制直接借用 Azure 的规模计算层只管用最低延迟跑出最高吞吐。故障恢复的形态变了。存储和计算耦合时丢一台主机同时损失容量和持久性恢复要重建完整仓库副本拆开之后丢一个计算 worker 更接近一次缓存未命中替补 worker 立刻开始服务边跑边从持久化存储填充缓存。容量可以跟着流量走。发布或新 Agent 集群上线带来的突发可以临时加容量过去之后再释放不用提前按峰值配置。五、收益以及边跑边换这个约束原文给出的内部基准结果是新架构实现了最高 35 倍于当前的写吞吐读容量可以独立按需扩展。这句话有个前提条件值得单独记一下——整套重建是在 GitHub 持续运行的状态下做的没有维护窗口也没有让用户改工作方式。原文的表述是为最苛刻的工作负载而建抬高的是所有人的下限无论是受严格监管要求约束的企业、要给操作系统仓库落地一次改动的团队还是跨时区评审志愿者贡献的维护者、提交第一个 PR 的学生用的是同一套更快也更稳的地基。同时新架构必须保留团队已经在用的控制维护者需要分支保护和必需评审确保未经审查的改动进不了默认分支安全团队需要审计日志和仓库可见性值班工程师需要有可依赖的自动化和足够的可观测性。原文把原则概括成三句建立在开发者已经信任的工作流上、可靠性优先、让人保持对代码的控制。六、这套思路对 Agent 开发者意味着什么即使你不做 Git 平台这篇文章里的两个模式可以直接搬进自己的 Agent 系统。第一个模式是识别哪些工作真的需要串行。Agent 编排里常见的错误是把所有步骤都做成同步等待而实际上真正需要集中一致的往往只有最终的状态提交。用一个很小的骨架来感受这种拆法# 自拟示意非官方代码把必须协调的部分压到最小defhandle_agent_step(state,action):resultrun_tool(action)# 可并行无需所有副本同意artifactspersist_artifacts(result)# 可并行内容写入对象存储scan_secrets(artifacts)# 可并行校验异步做# 只有引用更新这一步需要达成一致它是关键路径所以越短越好returncommit_ref(state.ref,artifacts)在这个骨架里run_tool、persist_artifacts、scan_secrets 都能和其他步骤重叠执行commit_ref 才是必须串行的那一小段。换句话说不要因为要保证一致就把整条链路都串起来。第二个模式是Agent 的写入频率要有上限。每步都 commit 看起来最安全实际会把写吞吐乘以步数。更实际的做法是按可恢复价值而不是按动作发生来定 checkpoint 粒度——比如一个逻辑子任务完成、或累计改动达到某个规模时才落一次中间状态留在内存或本地暂存。小结这篇文章的技术内核并不复杂把持久化和扩展拆成两件独立的事再把不需要协调的工作全部移出关键路径。难的地方在于它必须在线完成且不能动用户已经依赖的评审、审计、分支保护这些控制。对 Agent 开发者最值得带走的一条判断是当你说系统变慢了先分清慢的是读还是写。读慢通常加缓存就能缓解写慢往往意味着有一处不该串行的协调卡住了吞吐而这个瓶颈会随着 Agent 数量的增加被成倍放大。文中数据、架构描述与引用来自 GitHub Blog2026-10-06Azure Blob Storage 的具体形态与 35 倍基准的测试条件以官方后续文章与文档为准此处未验证最新版本。

相关新闻

Linux 命令行入门踩坑记录:从 VMware 装系统到文件管理

Linux 命令行入门踩坑记录:从 VMware 装系统到文件管理

Linux 命令行入门踩坑记录:从 VMware 装系统到文件管理 这学期开了 Linux 课,作业要求把 VMware 装系统的过程、还有命令行的基础知识整理成一篇博客。我本来想着"上机截几张图交差",结果真动手才发现坑不少,索性把过程…

2026/10/10 12:12:48 阅读更多 →
面试官:什么是数据库范式?什么是反范式?有什么优缺点?

面试官:什么是数据库范式?什么是反范式?有什么优缺点?

设计数据库表结构时,数据库范式是我们经常考虑的策略。但往往很多时候,我们会违反范式,以获得更好的性能。今天来聊一聊这个话题。1.范式第一范式表中字段是原子的,不可以再拆分。一个经典的例子就是地址字段记录了省市区&#xf…

2026/10/10 12:12:48 阅读更多 →
自动驾驶硬件在环(HIL)平台:从教学验证到量产算法移植

自动驾驶硬件在环(HIL)平台:从教学验证到量产算法移植

简介:本资源是一篇发表于《实验技术与管理》2021年第2期的核心期刊论文,聚焦自动驾驶汽车硬件在环(AVHIL)仿真实验平台的研发实践,面向高校自动化、车辆工程及人工智能相关专业本科生与研究生,解决教学中缺…

2026/10/10 12:12:48 阅读更多 →

最新新闻

AD25零报错安装五步法:新手绕过系统依赖墙的实操指南

AD25零报错安装五步法:新手绕过系统依赖墙的实操指南

1. 为什么“零报错安装”在AD25上成了新手最焦虑的坎?Altium Designer 25(简称AD25)发布后,我陆续收到二十多条来自某高校电子工程实训课学员、某创客空间初学者、以及自学硬件设计的转行开发者的私信,问题高度一致&am…

2026/10/10 13:46:50 阅读更多 →
CleanCode AI编程标准代码生成器:从源头实现生成即规范

CleanCode AI编程标准代码生成器:从源头实现生成即规范

1. 为什么“生成即规范”是个值得死磕的方向写代码这件事,最怕的不是功能实现不了,而是实现完了之后没人敢动。我见过太多项目,第一版跑得挺欢,三个月后加个字段要在五个文件里改八处,改完还不敢上线。这种局面不是某一…

2026/10/10 13:46:50 阅读更多 →
开源轻量模型三线并进:安全、机器人、决策,2026 下半年的落地清单里藏着 GLiNER2.5-Decide

开源轻量模型三线并进:安全、机器人、决策,2026 下半年的落地清单里藏着 GLiNER2.5-Decide

开源轻量模型三线并进:安全、机器人、决策,2026 下半年的落地清单里藏着 GLiNER2.5-Decide 【免费下载链接】GLiNER2.5-Decide 项目地址: https://ai.gitcode.com/hf_mirrors/fastino/GLiNER2.5-Decide 2026 年 9 月的最后一个发布周&#xff0c…

2026/10/10 13:46:50 阅读更多 →
SpringBoot+微信小程序:网络安全科普系统论文转工程实战解析

SpringBoot+微信小程序:网络安全科普系统论文转工程实战解析

简介:面向微信小程序网络安全科普系统的开发需求,这份docx设计文档适用于毕业设计、课程作业或实际科普平台建设的学习者与开发者。系统采用Java语言、MySQL数据库、微信小程序及SpringBoot框架,构建了包含科普知识查阅、案例分析、在线评价交…

2026/10/10 13:46:50 阅读更多 →
Spring Boot核心配置解析:绑定、多环境与加密实践

Spring Boot核心配置解析:绑定、多环境与加密实践

很多Java开发者第一次用Spring Boot,体验到的第一个“幸福感”就是不用再手写一堆XML了,但紧接着,就会被application.yml里的缩进、绑定规则和多环境切换折腾几回。application.yml这个看似不起眼的文件,其实是整个Spring Boot项目…

2026/10/10 13:46:50 阅读更多 →
CSP第二题机器人模拟题复健指南:从手生到稳定AC

CSP第二题机器人模拟题复健指南:从手生到稳定AC

说实话,第38次CSP我是裸考去的。不是报名前不重视,而是那段时间确实被各种事挤占,连续三个月没碰过OJ。键盘一上手,最明显的感受不是“算法不会”,而是连最基本的边界判断都开始犹豫。第一题磕磕绊绊写完,心…

2026/10/10 13:45:46 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:25 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 1:36:08 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →