Команда платформы баз данных Авито разрешила чтение с реплик PostgreSQL после шести лет ограничений. Ранее кластеры из трех узлов использовали реплики исключительно как резерв на случай отказа primary-узла, чтобы обеспечить достаточную емкость для переключения нагрузки.
Переход на стандартизированные профили баз данных сделал границы вертикального масштабирования более заметными, что потребовало распределения нагрузки на чтение. Теперь платформа предоставляет три логических пути подключения: для записи, для чтения без fallback и для чтения с переключением на primary.
Владельцы хранилищ могут декларативно включить чтение с реплик. Платформа автоматически формирует маршруты через Consul и discovery-контур, исключая из пула синхронные реплики и узлы с высоким отставанием репликации. Локальные реплики получают приоритет при выборе узла.
Система не гарантирует свежесть данных, так как задержка зависит от объема WAL и интенсивности записи. Приложения самостоятельно выбирают маршрут для каждого запроса, учитывая требования к консистентности. Инфраструктура не фильтрует SQL-запросы, поэтому разделение кода для чтения и записи остается на стороне разработчиков.





