Алгоритм проверки предусловий корректности запуска репликации в отказоустойчивом кластере PostgreSQL

Рудометов Андрей Сергеевич
1. Новосибирский государственный университет
a.rudometov@g.nsu.ru
Рутман Михаил Валерьевич
1. Новосибирский государственный университет
m.rutman@g.nsu.ru
Материал поступил в редколлегию 07.04.2025
Традиционно отказоустойчивые кластеры СУБД на базе PostgreSQL строятся с использованием механизма по-
токовой репликации, передающего файлы журнала предзаписи между узлами. При запуске репликации выпол-
няются проверки лишь на целостность файлов журнала. Поэтому при вводе в кластер узлов после отработки
отказа и настройки репликации можно получить резервный узел с данными, отличными от основного, либо
выходящий из строя при попытке запуска или перезапуска. Существующие системы высокой доступности вы-
нуждены требовать длительного процесса пересоздания узла в данных сценариях.
В работе предложен алгоритм, блокирующий запуск репликации в сценариях, когда это заведомо приведет к по-
тере идентичности данных или сбоям при восстановлении узла. Для этого перед запуском выполняется про-
верка предусловия корректности, основанных на сборе и сравнении информации о состоянии журналов пред-
записи узлов кластера. После блокировки возможна автоматическая синхронизация узлов для последующего
корректного запуска репликации.
Предложен способ встраивания алгоритма в СУБД, проведено тестирование на различных конфигурациях
с эмуляцией сбоев. При минимальных накладных расходах алгоритм предотвращает последствия некорректного
запуска репликации в большинстве случаев.

Выходные данные: А.С. Рудометов, М.В. Рутман Алгоритм проверки предусловий корректности запуска репликации в отказоустойчивом кластере PostgreSQL. Вестник НГУ. Серия: Информационные технологии. 2025 Т.23, №2. C. 29–42. DOI: 10.25205/1818-7900-2025-23-2-29-42