Найти в Дзене
Нейрозона сегодня

ChatGPT и PostgreSQL: Как OpenAI обходится без шардирования

OpenAI поделилась информацией о том, как PostgreSQL обеспечивает работу ChatGPT, сервиса с аудиторией в 800-900 миллионов пользователей в неделю. Удивительно, но компания отказалась от шардирования, выбрав архитектуру с одним основным сервером и около 50 реплик для чтения. Бохан Чжан, инженер OpenAI, представил подробности на PGConf.Dev 2025. Согласно его данным, кластер обрабатывает более миллиона запросов в секунду, обеспечивая время отклика в пределах нескольких миллисекунд (на 99-м перцентиле). Достигнуто это на стандартном PostgreSQL, без каких-либо изменений в коде, благодаря грамотной настройке пула соединений, оптимизации запросов и продуманной индексации. Основная сложность – операции записи. Поскольку все записи направляются на единственный основной сервер, команда OpenAI тщательно оптимизирует этот процесс: переносят записи, где это возможно, сглаживают пиковые нагрузки с помощью отложенной записи и контролируют скорость массовой загрузки данных. Любые изменения в схеме данн

OpenAI поделилась информацией о том, как PostgreSQL обеспечивает работу ChatGPT, сервиса с аудиторией в 800-900 миллионов пользователей в неделю. Удивительно, но компания отказалась от шардирования, выбрав архитектуру с одним основным сервером и около 50 реплик для чтения.

Бохан Чжан, инженер OpenAI, представил подробности на PGConf.Dev 2025. Согласно его данным, кластер обрабатывает более миллиона запросов в секунду, обеспечивая время отклика в пределах нескольких миллисекунд (на 99-м перцентиле). Достигнуто это на стандартном PostgreSQL, без каких-либо изменений в коде, благодаря грамотной настройке пула соединений, оптимизации запросов и продуманной индексации.

Основная сложность – операции записи. Поскольку все записи направляются на единственный основной сервер, команда OpenAI тщательно оптимизирует этот процесс: переносят записи, где это возможно, сглаживают пиковые нагрузки с помощью отложенной записи и контролируют скорость массовой загрузки данных. Любые изменения в схеме данных проводятся с особой осторожностью – добавление колонок занимает не более 5 секунд, индексы создаются только с использованием CONCURRENTLY, а полная перезапись таблиц исключена.

Масштабирование чтения осуществляется проще – реплики распределены по географическим регионам, а трафик направляется в зависимости от приоритета. Для критически важных запросов выделены отдельные реплики, чтобы избежать замедлений из-за сложных аналитических выборок. В результате, за последние девять месяцев был зафиксирован лишь один серьезный инцидент, связанный с PostgreSQL.

Решение OpenAI противоречит общей тенденции использования распределенных баз данных. Шардирование упрощает масштабирование записи, но значительно усложняет другие аспекты, такие как поиск данных, миграции и резервное копирование. OpenAI посчитала, что для ChatGPT, где преобладает чтение данных, более эффективно максимально оптимизировать один кластер, чем внедрять сложную распределенную архитектуру.

Ну что ж, видимо, иногда проще и надежнее использовать проверенные решения, чем гнаться за модой на все распределенное и масштабируемое. Хотя, кто знает, может, это просто гениальный ход, чтобы все остальные разработчики чувствовали себя немного неловко со своими шардами.