Как работает бэкенд ChatGPT для 900 млн пользователей

OpenAI раскрывает, как масштабирует PostgreSQL для ChatGPT, используя единственный основной сервер и реплики чтения для обработки миллионов запросов с высокой доступностью.

Как OpenAI масштабирует PostgreSQL

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

Архитектура данных

Архитектура базируется на простом, но эффективном принципе. Все операции записи направляются на основной сервер PostgreSQL, а операции чтения распределяются между репликами, разбросанными по разным географическим регионам. Такой подход возможен только потому, что рабочая нагрузка ChatGPT на 99 процентов состоит из операций чтения, а операции записи занимают минимальный объем трафика.

Избежание шардирования

Компания OpenAI целенаправленно избегает шардирования основной PostgreSQL базы данных. Все новые функции, требующие масштабирования на уровне записи, размещаются в отдельных системах, таких как Azure CosmosDB. Это решение принято осознанно, так как ретроактивное шардирование огромной системы OLTP может на неопределенный срок замораживать развитие компании.

Управление схемой данных

Управление схемой данных осуществляется с предельной осторожностью. OpenAI установила жесткий лимит в пять секунд на любые изменения схемы. Запрещены операции, которые требуют переписи всей таблицы. Создание и удаление индексов должны выполняться конкурентно, без блокировки основных операций. Когда требуется заполнить новое поле в таблице, применяются строгие ограничения на скорость записи. Такой процесс может занять больше недели, но гарантирует стабильность производственной среды.

Оптимизация запросов

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

Проблема шумных соседей

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

Механизм репликации и резервирование

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

Впечатляющие результаты

Результаты этого подхода впечатляют. PostgreSQL в OpenAI обрабатывает миллионы запросов в секунду при низкой задержке на уровне десятков миллисекунд для 99-го процентиля. Система поддерживает доступность на уровне пяти девяток, что означает 99,999 процентов времени работы. За последний год произошел только один критический инцидент, требующий немедленного решения.

Ключевая идея

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

Выводы

OpenAI продемонстрировала, что успех в масштабировании зависит не от выбора самой новой технологии, а от глубокого понимания характеристик рабочей нагрузки и дисциплинированного подхода к архитектуре. Компания показала, что простота и надежность часто превосходят сложность. В то время как многие компании спешат переходить на микросервисы и сложные распределенные системы, OpenAI доказала, что хорошо оптимизированная традиционная база данных может служить основой для одного из крупнейших сервисов в мире.

Полезные ссылки

Наши соц. сети

0 0 голоса
Рейтинг статьи

Вам так же может понравиться

Об авторе: Admin

Подписаться
Уведомить о

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии