Cursor 用 S3 上的 WAL 替代副本协调,Push 吞吐量超过每秒 300 次
背景传统的大规模 Git 托管架构依赖多副本协调。GitHub 的 Spokes 架构在多个 NVMe 设备上维护仓库副本通过三阶段提交更新 Git 引用确保副本间同步。这种方法的问题在于副本数量增加时协调开销随之上升。对于需要支撑大量 CI 负载的单体仓库或者 Coding Agent 创建的海量小型仓库副本协调会成为瓶颈。Cursor 面临的实际需求促使他们重新设计存储架构。他们需要一种既能应对重度 CI 负载的大型代码仓库又能高效管理数量庞大的小型仓库的方案。Continuity 架构放弃了副本协调这一传统路径转向将对象存储作为事实来源的设计思路。这一转变带来的不仅是性能提升还重新定义了本地副本的角色。核心原理Continuity 将 S3 上的预写日志WAL设为持久化存储的唯一事实来源。当用户执行 Push 操作时系统先将数据上传到 S3再把引用更新记录到 WAL 中。只有数据完成持久化后系统才会确认 Push 成功。Cursor 通过批处理操作降低 S3 PUT 请求延迟对吞吐量的影响。本地 NVMe 上的 Git 仓库被重新定义为温缓存不再是权威副本。系统使用 Rendezvous Hashing 选择优先处理请求的节点同时利用 S3 的原子比较并交换Compare-and-Swap操作让任意服务器都能接受 Push 请求。如果某台服务器本地没有仓库副本它可以根据 WAL 重新生成。WAL 更新通过 UDP Gossip 协议在节点间传播系统通过带条件的 S3 读取校验副本状态。Cursor 称这类读取的平均耗时不到 10 毫秒。Gossip 消息即使丢失也不会影响数据正确性因为 S3 始终是事实来源。这种设计让系统容忍了网络不可靠性不再需要副本间的强一致性协调。副本扩展和 Git 压缩的处理方式也发生了变化。单体仓库可以为 CI 工作负载扩展到数百个副本暂时无活动的仓库则可以等到需要时再生成本地副本。Git 压缩只由主副本执行其他副本直接从 S3 下载压缩后的 packfile减少了重复的 CPU 开销代价是增加了带宽消耗。局限Cursor 公布的性能数据尚未经过独立验证。在使用自己的 everysphere 单体仓库进行的合成测试中使用 S3 Standard 时每秒最多处理 120 次 Push换用 S3 Express One Zone 后超过 300 次。当吞吐量进一步提高时Git 压缩成为新的性能瓶颈。这种架构需要依靠存储校验和异步传播来保证副本状态并付出额外的带宽成本以减少副本协调开销。从数据库设计角度看Continuity 相当于把 Git 存储当作数据库来处理Push 的一致性保证、Force Push 涉及的事务以及时间点恢复等问题都值得关注。本地副本降级为缓存后系统对 S3 的依赖程度提高。如果 S3 出现延迟波动或可用性问题会直接影响整个存储系统的表现。批处理操作虽然降低了延迟影响但也引入了额外的复杂性。对开发者的意义Continuity 展示了将对象存储作为分布式系统事实来源的可行性。它不再要求多个副本通过同步协调维持一致状态而是让各个本地仓库独立向 S3 中记录的状态收敛。这种设计思路可以应用到其他需要大规模存储和高吞吐量的系统中。对于需要支撑大量 CI 负载的团队Continuity 提供了一种新的扩展路径。单体仓库可以为 CI 工作负载扩展到数百个副本读取能力随副本数量线性增长。对于管理大量小型仓库的场景按需生成本地副本的能力可以节省存储资源。Cursor 工程师 Vicent Martí 公开的设计细节显示从副本协调转向对象存储作为事实来源是一个值得验证的架构方向。系统在测试中满足线性一致性要求数据在请求确认前已持久化到外部存储Clone 操作也始终保持一致性。高级软件工程师 Maksim Al Dandan 指出这一思路将 Git 存储问题转化为数据库设计问题后续需要解决的是 Push 一致性、事务处理和恢复能力等传统数据库关注的问题。

相关新闻

torchair.get_npu_backend 详解:在昇腾 NPU 上获取 torch.compile 图编译后端的完整指南

torchair.get_npu_backend 详解:在昇腾 NPU 上获取 torch.compile 图编译后端的完整指南

人工智能模型编译Ascend 【免费下载链接】torchair TorchAir 支持用户基于PyTorch框架和torch_npu插件在昇腾NPU上使用图模式进行推理。 项目地址: https://gitcode.com/Ascend/torchair 点击查看 免费下载 导读 torchair.get_npu_backend 是 TorchAir 为开发者提…

2026/10/14 2:34:26 阅读更多 →
地方政府存量资源活化与市场化运作实践

地方政府存量资源活化与市场化运作实践

1. 地方财政创新实践背景最近在参与某地财政优化项目时,发现一个普遍现象:许多地方政府一方面面临公共服务资金短缺的压力,另一方面却存在大量闲置或低效使用的存量资产。这种矛盾状况促使我们探索"存量资源活化"的创新路径&#x…

2026/10/14 2:33:26 阅读更多 →
PCIe-3.2.1 Data Link Control and Management State Machine Rules

PCIe-3.2.1 Data Link Control and Management State Machine Rules

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

2026/10/14 2:33:26 阅读更多 →

最新新闻

Virglrenderer 虚拟化技术深入解析 · 专栏目录

Virglrenderer 虚拟化技术深入解析 · 专栏目录

一套面向工程师的 virglrenderer 源码级技术专栏。从概述与演进讲起,再深入核心抽象、各后端实现、部署集成与工程实践。所有内容以仓库源码为准。 这里讲一下我为什么关注 virglrenderer,因为国产 GPU 的虚拟化需求。 随着国产化替代的推进&#xff0c…

2026/10/14 3:23:34 阅读更多 →
Kestrel_VLLM_CUDA - 04 · 分组量化 GEMM 内核

Kestrel_VLLM_CUDA - 04 · 分组量化 GEMM 内核

04 分组量化 GEMM 内核 一句话:一个内核同时服务 decode(M1)与 prefill(M32),用「每线程固定几列、沿 K 扫」的映射让权重按 warp 满事务读、激活广播;用 z-split 把小 M 的欠填充网格补满&…

2026/10/14 3:23:34 阅读更多 →
Spring Boot 单元测试怎么写?物联网平台 MockMvc 接口测试与 Mockito 消息链路测试实战(附 JaCoCo 覆盖率报告)

Spring Boot 单元测试怎么写?物联网平台 MockMvc 接口测试与 Mockito 消息链路测试实战(附 JaCoCo 覆盖率报告)

真实运行截图:一、功能都写完了,为什么还要写测试? 我这个物联网设备接入平台(Spring Boot 3.5 EMQX MySQL),从设备注册、MQTT 接入、消息入库到密钥轮换,功能主线已经跑通了。但每次面试话题…

2026/10/14 3:23:34 阅读更多 →
宁波执业律师张娟:配偶背的债你要还吗——夫妻共同债务认定规则拆解

宁波执业律师张娟:配偶背的债你要还吗——夫妻共同债务认定规则拆解

结论先行:配偶单方所负的债务,并不天然由你连带承担。民法典第1064条确立了共债共签原则——共同签字或事后追认、为家庭日常生活需要所负的债务才是共同债务;超出日常生活需要的,原则上由举债方自担,除非债权人能证明…

2026/10/14 3:23:34 阅读更多 →
铝制小青瓦筑就江南院墅 复刻黛瓦白墙的东方栖居

铝制小青瓦筑就江南院墅 复刻黛瓦白墙的东方栖居

坐落于苏州的拙政江南,以拙政园为文脉基底,打造连片式低密新中式院墅群落。白墙围合私家庭院,黛瓦错落铺陈屋面,亭廊婉转、叠石理水,将苏州园林的雅致意境藏进每一方栖居空间。项目全线屋面采用铝制小青瓦,以现代建材工艺复刻传统江南小青瓦的形与韵,更从根源破解传统陶瓦的运维…

2026/10/14 3:23:34 阅读更多 →
中国起名服务正在发生什么变化?从“大师经验”到专业化、品牌化服务

中国起名服务正在发生什么变化?从“大师经验”到专业化、品牌化服务

很长时间里,人们对于“找人起名”的想象都非常简单: 找一位有经验的老师, 报出生时间, 老师根据经验给出几个名字。 整个服务高度依赖: “这个大师厉不厉害”。 但今天再观察国内专业起名市场,会发现它已经…

2026/10/14 3:22:34 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 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/13 22:01:27 阅读更多 →
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/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练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/12 18:11:17 阅读更多 →