Хорошая статья от OpenAI про масштабирование их postgresql базы.
Вот как они поэтапно шли к масшибированию своего хранилища. Важно понимать что между каждыми этими этапами есть какие-то интервалы времени, иногда меньше, иногда больше, главным драйвером был пользовательский спрос на продукт. Мне кажется просто хрестоматийный пример неспешного, постепенного улучшения.
1. Долгое время просто масштабировали инстанс, вертикально (ресурсы), горизонтально (реплики чтения)
2. Снижение нагрузки на главный узел. Тут подключили шардирование, оптимизация приложений (уменьшение write операций), контроль создание новых таблиц в главном инстансе.
3. Оптимизация SQL запросов на приложениях, работа с пулом соединений (PgBouncer)
4. Строго ревью всех запросов на изменений схем они должны быть быстрыми, не лочить надолго запись, Rate-limiting, приоритезация запросов и роутинг их на разные инстансы.
5. Standby сервер, geo-резервирование.
https://openai.com/index/scaling-postgresql/
Post #730
420