读:OpenAI怎样使用PostgreSQL支持8亿用户

26 年 1 月 26 日 星期一 (已编辑)
404 字
3 分钟

https://openai.com/index/scaling-postgresql/ https://www.pgevents.ca/events/pgconfdev2025/schedule/session/433-scaling-postgres-to-the-next-level-at-openai/ https://www.pgevents.ca/events/pgconfdev2025/sessions/session/433/slides/97/Postgres%20Conf%202025%20(Bohan).pdf https://vonng.com/db/openai-pg/ https://vonng.com/pg/openai-postgres/

读了下这篇文章 Scaling PostgreSQL to power 800 million ChatGPT users 简单总结了下遇到的问题和解决方案,我对数据库和高级特性了解不是很多,学习中。

面临的问题

写入压力

可分片的高写入负载的写操作迁移到分片数据库系统中 异步写入 限制执行速率

查询优化

减少连表查询 在应用层处理负载连接查询 审查ORM生成的SQL

单点故障

读写分离 主节点故障,写失败不可避免,但是读仍然可用,降低u事故等级 备份、热备份

工作负载隔离

多线程下,但个线程负载高导致影响到其与线程工作 高负载操作路由到专用实例 请求分级,分高优先级、低优先级

连接池

空闲连接未断开导致触达连接数上限 部署PgBouncer

缓存

缓存击穿问题 同一个key,在cache miss时,只允许一个查询请求到达数据 给cache miss时,查询数据库的操作加锁,第一个请求查询数据库,后续请求等待缓存填充

数据下发

主节点需要给所有从节点下发WAL 链式下发,主节点只给一部分从节点下发,再由从节点向其他从a节点下发

QPS限制

多层QPS限制 应用层 连接池 PgBouncer 数据库

表结构变更

表结构变更可能触发表重写 仅允许轻量级变更,例如新增或删除列

文章标题:读:OpenAI怎样使用PostgreSQL支持8亿用户

文章作者:violet

文章链接:https://www.vio.vin/posts/du-openai-zen-yang-shi-yong-postgresql-zhi-chi-8-yi-yong-hu[复制]

最后修改时间:


商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接,您可以自由地在任何媒体以任何形式复制和分发作品,也可以修改和创作,但是分发衍生作品时必须采用相同的许可协议。
本文采用CC BY-NC-SA 4.0进行许可。