Выбор ответа Senior Базы данных в эксплуатации обновлено
Split-brain
Вопрос
Что такое split-brain в кластере PostgreSQL с автоматическим failover и как от него защищаются?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Два мастера одновременно принимают запись; защищает консенсус (etcd) и fencing. При сетевом разделении старый мастер может продолжать принимать запись, а новый уже повышен.
Варианты ответа
- Реплика сильно отстаёт от мастера и отдаёт старые данные; защищает синхронная репликация
- Два мастера одновременно принимают запись; защищает консенсус (etcd) и fencingправильный ответ
- Разные версии PostgreSQL на узлах кластера; защищает pg_upgrade на всех
- Таблицы разделены между узлами без координации; защищает шардирование
Разбор
При сетевом разделении старый мастер может продолжать принимать запись, а новый уже повышен. Данные расходятся, и слить их обратно почти невозможно. Patroni держит лидерство через ключ с TTL в DCS: мастер, который не может продлить ключ, сам переходит в режим только чтения, плюс watchdog и fencing. Лаг реплики, версии и шардирование это другие темы.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.