Выбор ответа Senior Базы данных в эксплуатации обновлено

Split-brain

Вопрос

Что такое split-brain в кластере PostgreSQL с автоматическим failover и как от него защищаются?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Два мастера одновременно принимают запись; защищает консенсус (etcd) и fencing. При сетевом разделении старый мастер может продолжать принимать запись, а новый уже повышен.

Варианты ответа

  1. Реплика сильно отстаёт от мастера и отдаёт старые данные; защищает синхронная репликация
  2. Два мастера одновременно принимают запись; защищает консенсус (etcd) и fencingправильный ответ
  3. Разные версии PostgreSQL на узлах кластера; защищает pg_upgrade на всех
  4. Таблицы разделены между узлами без координации; защищает шардирование

Разбор

При сетевом разделении старый мастер может продолжать принимать запись, а новый уже повышен. Данные расходятся, и слить их обратно почти невозможно. Patroni держит лидерство через ключ с TTL в DCS: мастер, который не может продлить ключ, сам переходит в режим только чтения, плюс watchdog и fencing. Лаг реплики, версии и шардирование это другие темы.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме