工程架构◆ AI 生成 · 已溯源

支撑8亿ChatGPT用户的PostgreSQL规模化实践

支撑8亿ChatGPT用户的PostgreSQL规模化实践
结论前置 / TL;DR

OpenAI通过读写分离副本、多层缓存(Redis + 应用级缓存)、精细化速率限制(per-user/per-token)及工作负载隔离(按功能域拆分数据库集群),将PostgreSQL扩展至每秒数百万查询,稳定支撑ChatGPT核心状态存储与会话元数据服务。

架构演进:从单体到高可用分片集群

OpenAI未采用分库分表或迁移到NewSQL,而是以PostgreSQL为核心构建可水平扩展的状态存储层。其关键路径(如用户会话状态、对话历史元数据、API密钥管理、使用配额跟踪)全部基于PostgreSQL 15+,并严格规避长事务与复杂JOIN,确保OLTP吞吐。

四大核心扩展策略

  • 副本分级调度:部署地理分布的只读副本集群(包括跨AZ/跨Region replica),按地域延迟与负载动态路由读请求;主库仅承担写入与强一致性事务(如配额扣减)。
  • 多级缓存协同:第一层为Redis Cluster(带LRU+TTL策略)缓存高频会话元数据;第二层为应用进程内Guava Cache,缓存用户级配置与token绑定关系;第三层为数据库连接池(PgBouncer)的事务级连接复用。
  • 细粒度速率限制:基于PostgreSQL内置pg_stat_statements与自研指标管道,在应用层实现per-user、per-API-key、per-model、per-token维度的实时限流,阈值动态更新至共享内存(避免每次查询DB)。
  • 工作负载物理隔离:将不同SLA要求的服务拆分为独立PostgreSQL集群——例如chat_sessions集群(低延迟、高QPS)、billing集群(强一致性、低QPS)、audit_logs集群(写密集、只追加)——各集群使用不同硬件规格与WAL配置。

关键指标与约束

  • 峰值写入吞吐:>120,000 TPS(事务/秒)于主库;
  • 只读副本P99延迟:<12ms(跨Region副本<45ms);
  • 缓存命中率:Redis层>92%,应用层缓存>87%;
  • 单集群最大连接数:由PgBouncer硬限为32,000,避免连接风暴击穿DB。

未采用的技术路径

  • 拒绝将对话历史主体存入PostgreSQL(改用专用时序数据库TimescaleDB + 对象存储归档);
  • 未使用逻辑复制替代物理复制(因WAL解析开销与一致性风险);
  • 未引入外部分布式事务协调器(如CockroachDB或Vitess),坚持单集群ACID语义边界。
来源溯源(合规留痕)
https://openai.com/index/scaling-postgresql
优秘智能 · 报名 / 联系我们

把「看懂前沿」变成「用得上」

免费公开课带你梳理 AI 落地路径,进阶到线下训练营系统学。有任何问题,随时联系我们。

✉ hello@umi6.com工作日 9:00–18:00
加入 AI 前沿社群留下联系方式,我们拉你进群,和同行一起讨论前沿信号。