Инцидент в полевых условиях показал, что функция `recovery_prefetch` в PostgreSQL может вызывать сбои в производстве, особенно в конфигурациях синхронной репликации. Проблема возникает из-за ненужных вызовов предварительной выборки, когда общие буферы загружаются из полных записей страниц WAL (FPW), а не с диска, что приводит к значительной задержке воспроизведения на физических резервных серверах. Исторические дискуссии в рассылках 2021 и 2025 годов вызывали опасения, но не имели полного диагноза. Основная проблема — усиление IOPS: большие последовательные операции ввода-вывода на первичном сервере преобразуются в 8k случайные чтения на репликах, исчерпывая доступные IOPS и вызывая задержку реплик. Это усугубляется распространенным использованием синхронной репликации для защиты данных. Отключение `recovery_prefetch` решает проблему. Функция, предназначенная для улучшения производительности восстановления, вместо этого вводит нестабильность в современных средах высокой доступности.
Источник: Hacker News · Сводку подготовил HeadlinesBriefing