How OpenAI Scales PostgreSQL to Power 800 Million ChatGPT Users

Arpit Bhayani

Arpit Bhayani

Jan 23, 2026 • 2 min read

Play

How OpenAI Scales PostgreSQL to Power 800 Million ChatGPT Users

OpenAI’s approach to scaling PostgreSQL for its 800 million ChatGPT users offers a fascinating case study in database optimization. Surprisingly, their core setup relies on a single PostgreSQL primary instance supported by 50 read replicas. This document dissects the strategies and trade-offs involved in achieving such massive scale with a seemingly simple architecture.

Initial Scaling Approach

When faced with an initial surge of users, OpenAI adopted a pragmatic, iterative scaling strategy:

  • Application Logic Optimization: The first step involved optimizing the application code to reduce database load.
  • Database Tuning: Fine-tuning PostgreSQL parameters to improve performance.
  • Vertical Scaling: Upgrading the primary database instance to a more powerful server to handle increased load.
  • Read Replicas: Adding multiple read replicas to offload read-heavy workloads, as ChatGPT’s usage pattern is predominantly read-intensive.

This initial setup proved sufficient for a significant period, even as the user base grew 10x within a year.

Challenges with a Monolithic PostgreSQL Setup

While simple, a single primary database introduces several challenges at scale:

  • Cascading Failures: Any issue or change in an upstream service can have a catastrophic, cascading effect on the data layer. For instance, a cache miss storm can synchronously overwhelm the primary.
  • Expensive Queries: Certain use cases might involve expensive multi-way joins, saturating the database’s CPU and affecting other requests with timeouts.
  • Feature Spikes: New feature launches often lead to sudden spikes in traffic, which the existing infrastructure must absorb, potentially causing performance degradation.

PostgreSQL’s MVCC and Write Amplification

PostgreSQL’s Multi-Version Concurrency Control (MVCC) mechanism, while a powerful feature for concurrency, can become a bottleneck under heavy write workloads:

  • In-Place Update Avoidance: Unlike some databases, PostgreSQL does not perform in-place updates. When a row or column is modified, it creates a new version of the row.
  • Write Amplification: Every write operation effectively leads to the creation of a new row version, increasing the storage footprint and I/O.
  • Vacuuming Overhead: Multiple updates on the same row create many versions. A background process called VACUUM is required to clean up these
Arpit Bhayani

Principal Engineer II at Razorpay - building Agent Studio, Ex-staff engg at GCP Memorystore & Dataproc, Creator of DiceDB, ex-Amazon Fast Data, ex-Director of Engg. SRE and Data Engineering at Unacademy. I spark engineering curiosity through my no-fluff engineering videos on YouTube and my courses