Margrop
Articles293
Tags757
Categories6

Categories

1password 24GB VRAM 2K 3.6 Flash 30B dense 4-bit 量化 6-DoF SLAM AC ACP AI & Economy ATLAS AI Agent AI Coding Assistant AI Tech AI Workflow AI tutor AI 基础设施 AI 安全 AI 工程 AI 应用 AI 日记 AI 生产力 AI编程助手 ALTK-Evolve AMIE AP API API 定价 API 降价 ARC-AGI-3 ASR ATEM chat 模板 AUTOMATIC1111 Agent Agent Harness Agent Memory Agent 入侵 Agent 可靠性 Agent 工程 Agent 推理 Agent 架构 Agent 检索 Agent 沙箱 Agent 系统 Agent 训练 Agent 记忆 Agent 评测 Agent 路由 Agentic AI Agentic SOC Agentic tools Ai2 Alertmanager AllenAI Android 17 Antigravity Apertus 1.5 AppDaemon AppWorld Apple Silicon Aqara Astra Async GRPO Attention AutoSynthData Baseten Benchmark CC-Switch CI/CD CLI Tools CLI工具 COBOL CPU 推理 Cache Hit Rate Caddy ChatGPT Claude Code Claude Sonnet ClawLoader Code Interpreter CodeMender Codex Coding Agent ComfyUI Computer Use Cookie 认证 Cosmos DB Cosmos-H-Dreams Cost Optimization Cron Cybersecurity DFIR DSpark Date DeepSeek DeepSeek V4 Flash Diagrams.net Diary Diffusers Diffusion Docker Efficiency Tools Embedding English Evaluation Cards FSDP2 Fable 5 Falcon ASR Fireworks AI FlashAttention FlashDreams Frontier AI Function Calling Funes GGUF GLM 5.2 GLM-5.2 GPT-4.1 GPT-5.6 GPT-5.6 Sol GPT-6 GPT-6 Astra GPT-Live GPT-Live-1 GPT-Red GPU 云 GPU 加速 GPU 性能分析 GPU 集群 GRPO Gateway Gemini Gemini 3.5 Flash Gemini 3.7 Flash Gemini 3.8 Gemini 4 Argon Gemini API Gemini CLI Gemini Omni Flash Gemma 4 12B Gemma Translator Gemma4 GitHub Actions Google Google AI Google Beam Google Data Commons Google DeepMind Google Research Google Sheets Grabette Gradio Gradio Workflow Gripette HA HADashboard HF Security Incident Hailuo Hermes Hexo Holo4 HomeAssistant Hugging Face IBM Granite IBM Research In-context Learning Inference Providers Isaac Lab JSON Output Java KV cache KV 缓存 Kimi K3 Kubernetes LFM2.5 LFM2.5-VL LLM Router LLM 安全 LLM 工程 LLM 评测 LVM‑Thin Late Interaction LeRobot Linux Liquid AI LiquidAI Live Translate LoRA Luna MCP MLX MTP MacOS Magpie TTS Managed Agents Meta Microsoft 365 Copilot MiniMax Mistral Shieldstral MoE Model Routing MuJoCo Warp Multi-Agent Multi-Vector MultiLangBench Muse Glimmer Muse Spark Open MySQL NAS NIM NVIDIA NeMo Automodel NeMo Data Designer Nemotron Nemotron 3 Embed NeoMME Newton Nginx Node.js Nunchaku OCR OOM OlmoEarth On-device AI Open Source OpenAI OpenAI Codex OpenAI 兼容 OpenClaw OpenCode OpenResty OpenWrt PII 检测 Physical AI Pollen Robotics Portainer PostgreSQL ProcessOn Project Astra Prometheus Prompt Caching Prompt Injection Prompt 缓存 Proxmox VE PyTorch Qwen3 Qwen3-VL Qwen3.6 RAG RPC RTEB Real-Time Inference Red Teaming Reflection Beam Responses API SNAP SOCKS5 SPED SVDQuant SWE-Bench Schema Scientific Computing Self-Forcing Distillation Sentence Transformers Session Sheets canvas Shell Sol Speech-to-Text Storage Buckets Strands Agents Subagent Surgical Robotics TRL TTS Tabular Terra Think button TimeMachine Tokenizer Transformers TutorMoments UML Uptime Kuma V4-Pro VPS Voice Agent VoiceEQ WARP WebRTC WebSocket Windows World Foundation Model agent agentic aligenie aliyun annotation aop autofs backup bash bitwarden boot brew browser budget control centos cert certbot charles chat chrome classloader client clone closures cloudflare command commit commoditization container crontab cyber capability demo dependency deploy developer devtools dll dns docker domain download drafter draw drawio dsm dump dylib environment hooks exception fail2ban feign firewall-cmd flow free tier frontier hosted model frp frpc frps fuckgfw full-duplex function gfw git github gperftools gridea grub guardrail lockout gvt-g hacs havcs heap hello hexo hibernate hidpi hoisting homeassistant hosts html htmlparser https huggingface_hub iKuai iMessage image img img2kvm immortalwrt import index inference cost install intel io ios ip iptables iso java javascript jni jnilib jpa js json jsonb jupter jupyterlab jvm k8s kernel key kvm lastpass launchctl learning letsencrypt linux llama.cpp low-code lvm mac mariadb markdown maven md5 microcode mirror modules monitor mount mstsc multimodal mysql n5105 network nfs node node-red nodejs nohup notepad++ npm nssm ntp oop open d1 open weights openfeign openssl os ovz packet capture pdf pem perf pip plugin png powerbutton print pro productive struggle pve pvekclean python qcow2 qemu qemu-guest-agent rar reasoning control reasoning slider reboot reflog remote remote desktop renew repo resize retina router runtime safari sata scaffolding scheduled triggers scipy-notebook scoping scp self-play server serverless inference silent test simulated student so speculative decoding spk spring springboot springfox ssh ssl stash string support svg svn swagger sync synology systemctl systemd template terminal txt ubuntu ui undertow unlocker upgrade vLLM vhd vim vm vmdk web windows with worker xml yum zai-org/GLM-5.2 zip 一致性评测 上下文压缩 上下文工程 事件响应 交换机 人才争夺 人机协作 代理 代码生成 代码迁移 企业 AI 企业自动化 优化 低延迟 低资源编程语言 供应链 健康检查 光猫 免费层 内存 内存优化 内网渗透 决策模型 分布式存储 分布式推理 分布式训练 医疗 AI 升级 卫星影像 反向代理 反诉 可复现性 合成数据 向量检索 启动 告警 告警优化 图像生成 地球观测 地理空间推理 基础设施 复盘评测 夏令时 多 token 预测 多向量检索 多智能体 多模型编排 多模态 多模态 AI 多模态 API 多模态 Agent 多模态交互 多模态检索 多模态模型 多语言 多语言 AI 大厂人才战 大模型评测 天猫精灵 安全 安全事件 安全对齐 安全评测 安全运营 安装 定时任务 实时协作 实时语音 客户端 SDK 容器 导入 小米 屏幕理解 工作流编排 工具审计 工具调用 工具调用拦截 工程团队 工程实践 工程笔记 常用软件 应用市场 延迟优化 开权重 开源权重 开源模型 异常 异步任务 异步委派 强化学习 微信 心跳 性能优化 性能捕捉 成本优化 成本控制 扩散模型 技术 抓包 拒答校准 持续预训练 按 provider 优先级 排查 推测解码 推理加速 推理成本 推理模型 推理速度 推理预算 描述文件 提示词敏感性 搜索 API 故障排查 效率工具 教育数据开源 教育评测 数学推理 数据工作流 数据治理 数据流 数据管线 数据集偏差 文本编码器 旁路由 日志分析 日记 时区 显卡虚拟化 智能家居 智能音箱 服务管理 本地 Agent 本地 agent 本地推理 机器人仿真 机器人学习 机器人数据采集 架构 模块 模型微调 模型快照 模型推理 模型评测 模型路由 残存访问 流式推理 流程 流程图 浏览器 混合专家 漫游 火绒 生成式影像 电信 画图 监控 监控系统 监管 知识蒸馏 磁盘 科研自动化 稀疏注意力 立体声 端侧 AI 端侧推理 端口 端口冲突 端口扫描 结构化输出 续期 网关 网络 网络安全 网络风暴 群晖 脚本 脚本优化 腾讯 自动化 自动恢复 自动攻击 自部署 苹果 虚拟机 表格基础模型 视觉语言模型 视频生成 视频问诊 认证 训练基础设施 证书 评测 评测基准 评测方法学 诉讼 语音 AI 语音 Agent 语音识别 资源调度 超时 路由 路由器 软件工程 软件管家 软路由 边缘 AI 运维 运维监控 连接保活 连接问题 通信机制 通知 邮件漏发 部署 配置 量化 量子计算 钉钉 镜像 镜像源 长上下文 长任务编排 长连接 门窗传感器 问题排查 防火墙 阿里云 阿里源 集客 非人类身份 飞书

Hitokoto

Archive

OpenAI 自研存储平台 Habitat:给十亿用户的毫秒级数据访问是怎么做到的?

OpenAI 自研存储平台 Habitat:给十亿用户的毫秒级数据访问是怎么做到的?

OpenAI Habitat 存储平台

先说结论

OpenAI 在 2026 年 10 月 23 日发布工程博客《Rapidly scaling online storage to serve over 1 billion ChatGPT users (Part II)》,公开了其统一存储平台 Habitat 的存储层架构:基于 Azure Cosmos DB 的多租户演进、与 Azure 团队的联合运维模式、全球读延迟从约 120ms 降到约 10ms 的优化路径,以及面向下一阶段的自研 EB 级存储系统预告。官方数据:Habitat 每秒处理超 7000 万请求、服务超 10 亿周活用户、覆盖约 40 个地理区域、存储超 500PB。

我的判断是:这篇博客真正的信息量不在规模数字,而在两个工程决策——“从多租户到单租户再回到多租户”的螺旋路线,以及”托管服务在头部规模会退化成联合工程”的运维模式判断。这两条对任何正在把 Agent 产品从 demo 推向大规模的团队都直接可用。

发生了什么

主来源是 OpenAI 官方工程博客《Rapidly scaling online storage to serve over 1 billion ChatGPT users (Part II)》,发布日期 2026 年 10 月 23 日,原始 URL:https://openai.com/index/scaling-storage-one-billion-users-part-two。作者为 OpenAI 技术成员 Jon Lee、Hrachya Hakobyan、Chaomin Yu。这是 9 月 11 日 Part I(讲 Habitat 服务层如何把 Python 服务推到极限)的续篇,本篇聚焦存储层。

官方事实一:Habitat 的规模数字。 每秒处理超过 7000 万请求,支持 ChatGPT、API、Codex 等产品,服务超过 10 亿周活用户,覆盖约 40 个地理区域,存储超过 500PB 数据。官方明确说,据他们所知 OpenAI 是唯一一家在此规模部署 Azure Cosmos DB 的公司——最大的单个账户存了数十 PB 数据、每秒处理超 2000 万 QPS。

官方事实二:存储层走了一个”三段式”螺旋。 第一阶段依赖 Cosmos DB 原生能力,全产品共享一个多租户容器;第二阶段为关键用例拆分单租户容器以获得隔离;第三阶段又回到多租户默认,但这次是带着 Azure 团队专门工程化的新能力回去的。官方说”我们仍在多租户故事的非常早期”。

官方事实三:全球读延迟 12 倍优化。 通过关键数据近地复制、区域内分布式缓存(基于 Valkey 的 lookaside cache,用 Cosmos DB change feed 做秒级全局失效传播)、Habitat 代理层用 Rust 重写三件事,全球读 p50 从约 120ms 降到约 10ms。官方称读请求占 Habitat 总请求的 90% 以上。

官方事实四:下一代系统已在开发。 为服务”下一个十亿用户”,OpenAI 正在自研 EB 级在线存储系统:拿 Rockset 的 RocksDB Cloud 内核加上 Raft 复制,实现与 Cosmos DB 相同的文档模型,但用解耦存储(disaggregated storage)和物理复制来降低闪存容量需求,代价是更低的峰值 QPS。

官方事实五:CDC 平台独立成层。 每秒数百万条变更捕获、跨数千容器、100+ Kafka topic,支撑二级索引、数据管道、离线分析。CDC 平台抽象掉”监听哪些账户、哪个区域、worker 怎么扩缩”的全部复杂性,客户端只注册回调函数。

以上是官方发布内容;下文的工程解读是我的判断,与官方无关。

技术细节

1. 多租户 vs 单租户:三个失败模式逼出来的螺旋

第一阶段的问题全部来自”逻辑分区键”与”物理分区”的错配:

  • 逻辑分区键碰撞:早期 API 把分区键选择直接暴露给客户端,导致不同产品用例在 user_id、workspace_id 这类通用键上频繁碰撞。因为 Cosmos DB 的限制按逻辑分区键计算,同一个用户的总吞吐被不相关的用例共同分摊了。
  • Noisy neighbor:文档写的限制是”每个逻辑分区键 10K RU/s”,但实际限流发生在物理分区层。一个冷门功能的工作负载可以拖慢核心登录流程——不同用户的逻辑分区落在同一个物理分区上,共享限流上限。
  • 弱分区(weak partitions):容器吞吐按物理分区数量均摊,数据增长触发物理分区分裂时,总量不变、分母变大,每个分区的有效吞吐随存储增长而下降。存储涨、请求量不变,吞吐上限却自己往下掉——这是最反直觉的失败模式。

第二阶段拆分单租户容器确实解决了隔离问题,但制造了组织问题:新用例从 0 涨到 100 万 QPS,在共享容器里只占总余量的 5%,在专属容器里是基线的 10000 倍。产品团队忘记预扩容,launch day 坐在 SEV 会议室里临时扩容成了常态。官方原话:这”在组织层面无法扩展”。

第三阶段带回来的新能力:热键节流(先限最热的键,防止一个热键打满整个物理分区)、QoS 分级(离线批量写入先被限流,保护交互式请求)、新 serverless 模式(每个物理分区可到 10K RU/s,并引入基于 RU 用量的分裂——不再只按存储量分裂,弱分区问题从机制上消除)。官方称此后数月再无扩容或 noisy neighbor 事故。

2. 托管服务在头部规模”退化”成联合工程

这是全篇最值得 Infrastructure 团队细读的一段。官方的表述是:当你的规模成为云厂商基础设施里的离群值,”managed” 就不再 managed。具体合作形式包括:共享测试、共享 dashboard、直接工程通道、跳过 support 分层直接互相 paging、在生产规格但非生产的账户上共同测试变更、共同迭代 SDK。

2024 年底的区域故障是转折点:最大账户之一的主区域断电,故障演练发现这个规模的故障转移要数小时——双方都没在自己规模下测过。一个月后回迁时又触发连接风暴,打垮了原区域的 Cosmos DB 网关:网关模式客户端的 failover 特性导致所有客户端在只有部分物理分区迁回时就立即重连并全量发请求。

3. 读优化三层:数据近地、缓存、Rust

读请求占 90% 以上,所以优化全压在读路径上:

  • 数据近地:受物理容量约束,只能对数据驻留合规和少数关键数据集做到;很多区域装不下对应的存储足迹,官方明确说这是”延迟优化 vs 存储容量”的直接权衡——省下容量放计算,存储请求就要绕远路。
  • 认证元数据全域复制:每个请求都要查的认证元数据复制到全部 40 个区域(或至少每大洲一个),用复制拓扑换 RTT。为此提前建设了透明数据移动层。
  • CDC 驱动的缓存失效:不走 TTL 权衡的老路,而是学习 Meta TAO:用 Cosmos DB change feed 消费变更、秒级传播失效到各区域 Valkey 缓存。高命中率 + 低陈旧度同时拿到。
  • Rust 重写代理层:Part I 的 Python 服务层经验延续——把代理层从 Python 重写为 Rust 持续压延迟。

四件事合计把全球读 p50 从约 120ms 压到约 10ms(12 倍),官方说是”今年年初开始聚焦性能以来”的成果。

4. 对 Agent 工程的直接映射

Agent 产品的存储需求天然是”读重 + 热键”形态:会话历史按 user_id/session_id 聚簇,热门组织或热门 Agent 工作空间就是天然的 hot key。OpenAI 早期在 Postgres 时代就被 hot organization 打垮过整库,这套经验完整适用于任何 Agent 产品。

第二个映射是 CDC 驱动的缓存失效模式。Agent 系统里的工具状态、会话状态、权限快照都适合”读重写少 + 要求低陈旧度”的场景,change feed → 缓存失效这条链路可以直接复制。

第三个映射是”组织扩展性”这个约束本身:单租户隔离买的是可靠性,付出的是每个团队都要做容量规划的组织成本。Agent 平台团队在”每个业务线自建存储”和”统一平台层”之间的选择,本质是同一个权衡。

对 Agent / 工程的影响

第一,Agent 存储层应该默认多租户 + 平台层,跳过”每团队一库”阶段。 OpenAI 的螺旋证明了极端单租户在组织上不可扩展;如果你的 Agent 产品还在让每个业务团队自己运维数据库,这篇博客给出的方向是收拢到一个平台层,把隔离问题交给热键节流 + QoS + 分区机制解决。

第二,读路径优化优先级:缓存失效机制 > 缓存本身。 TTL 缓存在多区域场景下必然撞上陈旧度权衡;CDC 驱动的失效是已被两个超大规模生产系统(TAO、Habitat)验证的模式。Agent 会话历史、工具调用记录这类数据的读放大比写放大高一个数量级,值得直接复用此模式。

第三,分区键设计要提前做防御。 把 user_id 这类通用键直接暴露给业务方会导致跨用例碰撞;Habitat 的做法是在平台层做 schema lookup 和路由,而不是让客户端自选分区键。Agent 平台如果允许业务方自选分区键,早晚撞上同一个问题。

第四,托管服务的规模化极限要提前评估。 如果你的 Agent 基础设施依赖某项托管服务,且流量规模进入云厂商的”最大客户”区间,就要准备好”共享测试、共享 dashboard、直接工程通道”这种深度合作模式,或者准备好自研替代。官方的原话是 managed services become less managed——这句话值得写在每个 infra 团队的评估文档里。

第五,读延迟 12 倍优化是产品速度问题,不是基础设施问题。 官方明确说延迟优化之前,产品开发者被迫做客户端缓存、请求合并、关键路径规避等”围绕数据库问题做产品设计”,拖慢了产品迭代。存储快了,产品才能做简单。Agent 产品同理:存储层慢,产品逻辑就要绕着它设计。

我的判断

一,多租户螺旋路线是对的,但多数团队应该跳过第二阶段:除非你的某个用例流量模式极端离群,否则直接做平台层 + 热键节流 + QoS,不要走”先拆单租户再合并”的弯路。二,CDC 驱动的缓存失效值得立即引入 Agent 存储设计,TTL-only 的缓存设计在多区域场景下已被两次证明是次优解。三,自研存储的触发条件很清晰:当托管服务的故障转移时长和限流机制开始定义你的产品 SLO 时,就是启动自研的时点——OpenAI 是在 2024 年底那次数小时的 failover 演练后开始动手的。

Q&A

Q1:来源、发布日期和原始 URL 是什么?

A:主来源是 OpenAI 官方工程博客《Rapidly scaling online storage to serve over 1 billion ChatGPT users (Part II)》,发布日期 2026-10-23,原始 URL:https://openai.com/index/scaling-storage-one-billion-users-part-two。背景参考同系列 Part I(2026-09-11):https://openai.com/index/scaling-storage-one-billion-users-part-one。官方还发布了中文版本(zh-Hans-CN 路径)。

Q2:能不能复现或验证?

A:部分可以。多租户的三个失败模式可以用任何按分区限流的数据库小规模复现:建一个多租户容器,两个业务用例共用逻辑分区键,压测其中一个,观察另一个的尾延迟变化;再持续写入数据触发分区分裂,记录有效吞吐随分裂数量下降的曲线。12 倍读延迟优化无法直接复现,但”近地复制 + 缓存 + 代理层重写”三层可以在自己的系统上逐层测量各自的贡献。

Q3:适用边界是什么?

A:官方方案绑定 Azure Cosmos DB 的分区原语、change feed 和 serverless 模式;热键节流和 QoS 分级是 Azure 团队为 OpenAI 定制的工程成果,普通用户拿到的 Cosmos DB 不一定有同款能力。文中的失败模式和权衡是通用的,具体机制不可直接照搬。EB 级自研存储系统仍在开发中,官方没有给出可用时间表。

Q4:和已有方案的对比?

A:与同存储层旧方案(多容器单租户)相比,新方案把容量规划从产品团队收归平台,组织成本显著下降;与 Meta TAO 相比,Habitat 的缓存失效同样走 change data capture 路线,但底层是托管数据库的 change feed 而非自建存储;与自研路线相比,Cosmos DB 多租户方案省掉了存储引擎维护,代价是峰值 QPS 上限和厂商绑定。

Q5:风险和坑?

A:三个:一是缓存失效链路自身就是新的故障面,CDC 服务、Kafka、失效 worker 任何一环出问题都会放大陈旧度,官方为此专门做了死信队列和区域切换;二是”托管服务变联合工程”意味着深度绑定单一云厂商,迁移成本随合作深度同步增长;三是 Rust 重写代理层是整个 Part I + Part II 里投入产出比最难复制的一环,没有对应工程团队时不要轻易启动。


字数自检:正文超 1500 个中文字符
隐私自检:未写入姓名、账号、用户输入、内部网络细节、凭据或会话标识
来源:OpenAI 官方工程博客,2026-10-23,https://openai.com/index/scaling-storage-one-billion-users-part-two

本文阅读量 --
Author:Margrop
Link:https://blog.margrop.com/post/2026-10-26-openai-habitat-storage-scaling/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可