Этой схемы хватило, чтобы обслуживать миллионы запросов в секунду для аудитории 800 млн пользователей. Важно, что упор в статье не на волшебные настройки, а на инженерные решения вокруг СУБД. Вот что оказалось ключевым: ✔️ Чтение отдельно от записи — трафик чтения разгружают на реплики, основной узел минимизируют по нагрузке на чтение и запись. ✔️ Вынос write-heavy и шардируемого — шардируемые нагрузки с преобладанием операций записи переносят в шардированные системы вроде Azure Cosmos DB. Новые нагрузки по умолчанию распределяют на шардированные системы, а в текущее развертывание PostgreSQL больше не разрешают добавлять новые таблицы. ✔️ Контроль дорогих запросов — по возможности избегают сложных многотабличных соединений. Если соединения нужны, рассматривают разбиение запроса и перенос сложной логики соединений на уровень приложения. ✔️ Проверка SQL от ORM — тщательно проверяют SQL, который генерируют ORM, и убеждаются, что он работает как ожидается. ✔️ Защита autovacuum — исп
OpenAI рассказала, как масштабирует PostgreSQL под нагрузку ChatGPT: один основной узел и почти 50 реплик для чтения в нескольких регионах
2 дня назад2 дня назад
1
2 мин