Ответ вслух Middle Консистентность и CAP спрашивают часто обновлено

Объясните CAP

Вопрос

Объясните CAP-теорему на практическом примере.

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

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

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

Коротко

CAP говорит: если сеть между узлами разорвалась, система должна выбрать, отвечать ли на запросы, рискуя отдать устаревшие данные, или отказывать, пока связь не восстановится. Пример: два дата-центра с репликами, связь пропала.

Что должно прозвучать в ответе

  • Три свойства: консистентность (линеаризуемость), доступность, устойчивость к разделению

  • Разделение неизбежно, выбор CP или AP делается в момент разделения

  • Пример CP: система с лидером и кворумом отказывает в записи без большинства

  • Пример AP: корзина или лайки принимают запись, позже сливают

  • C в CAP не равна C в ACID; PACELC про задержку в нормальном режиме

Что могут спросить следом

  • К какому типу отнести PostgreSQL с асинхронной репликой?
  • Что такое PACELC?

Разбор

CAP говорит: если сеть между узлами разорвалась, система должна выбрать, отвечать ли на запросы, рискуя отдать устаревшие данные, или отказывать, пока связь не восстановится. Пример: два дата-центра с репликами, связь пропала. CP-система, как etcd или ZooKeeper, позволит писать только той части, где большинство узлов, другая вернёт ошибку. AP-система, как корзина в духе Dynamo, примет запись в обоих местах и позже сольёт версии. Выбор зависит от данных: для балансов CP, для лайков AP. Важно, что C тут линеаризуемость, а не C из ACID. А PACELC добавляет: даже без сбоев мы выбираем между задержкой и консистентностью.

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

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