OpenAI的PostgreSQL大规模应用实践与挑战

2025-05-23

OpenAI在PGConf.dev 2025大会上分享了其使用PostgreSQL的最佳实践。他们采用单写多读的非分片架构,成功支撑了5亿活跃用户的海量读请求。然而,写请求成为瓶颈,为此他们进行了多方面优化,包括:控制主数据库负载(尽可能卸载写操作、使用延迟写等)、查询优化(避免长事务、优化复杂查询)、解决单点故障(优先处理高优先级请求)、精细的Schema管理(限制Schema变更)。尽管如此,OpenAI仍然遇到一些问题,例如索引管理、可观察性、Schema变更历史记录等,并向PostgreSQL社区提出了改进建议。资深PostgreSQL专家老冯对这些问题给出了基于其自身经验的见解,并指出许多问题可以通过已有工具或方法解决,甚至可以直接使用其开源的Pigsty系统。最终,OpenAI的PostgreSQL集群成功处理了超过百万QPS的请求,证明了PostgreSQL在大规模应用场景下的潜力。

阅读更多
开发

为什么 TCP 需要三次握手

2024-10-02

这篇文章深入探讨了 TCP 三次握手的机制和必要性。文章首先介绍了 TCP 包的控制位、序列号、确认号以及 TCP 状态机,为理解三次握手奠定了基础。然后,通过图解和实际的 Wireshark 抓包实例详细展示了三次握手的过程。文章还用反证法和序列号机制证明了三次握手对于建立可靠 TCP 连接的必要性,并解释了三次握手如何防止旧连接的延迟数据包干扰新连接。最后,文章总结了三次握手的作用,即确认双方的初始序列号,确保连接的可用性。

阅读更多
未分类 三次握手

为什么单线程Redis如此之快?

2024-09-04

这篇文章探讨了Redis为何采用单线程架构却依然保持高速的原因。主要原因包括Redis基于内存的数据存储、高效的数据结构、避免了多线程上下文切换和锁竞争的单线程架构以及利用I/O多路复用技术实现的非阻塞I/O。文章还解释了Redis 6.0引入多线程的原因是为提高网络I/O效率,但命令执行部分仍然是单线程以保证安全。

阅读更多
未分类 单线程

关于证书的那些事儿:证书颁发机构

2024-07-30

本文详细介绍了证书在网络安全中的作用,特别是TLS/SSL协议中的应用。文章阐述了证书颁发机构(CA)的角色和责任,包括验证网站身份、保护私钥安全以及签发证书的流程。文章还解释了客户端如何验证证书以及信任链的概念,并以Let's Encrypt为例说明了新CA如何获得信任。

阅读更多
未分类 TLS/SSL