Вопрос с собеседования · System design

Что описывают три буквы в CAP?

JuniorCAP и согласованность
Ещё спрашивают так:
  • Расшифруйте CAP.
Коротко

C — согласованность (каждое чтение видит последнюю запись), A — доступность (каждый запрос получает ответ), P — устойчивость к разделению сети.

  • P неизбежна — выбор между C и A возникает только во время разделения
  • «Выбери любые два из трёх» — неточная формулировка

А ещё Без разделения можно иметь и C, и A

Подробно

Распространённая неточность — «выбери любые два из трёх». На деле разделение сети в распределённой системе неизбежно, поэтому устойчивость к нему не выбирают, а принимают как данность. Реальный выбор возникает только в момент разделения: продолжать отвечать, рискуя отдать устаревшие данные, или отказывать в обслуживании ради согласованности.

Что хотят услышать

  • Расшифровка трёх букв.
  • Почему выбор — между C и A при разделении.

Частые ошибки

  • Понимать теорему как свободный выбор любых двух свойств.
  • Забывать, что вне разделения доступны и согласованность, и доступность.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✗Cache, API, Performance — три уровня оптимизации системы
  • ✗Capacity, Availability, Persistence — ёмкость, доступность и сохранность
  • ✗Concurrency, Atomicity, Parallelism — свойства параллельной обработки
  • ✓Consistency, Availability, Partition tolerance

Что спросят дальше

  • Почему устойчивость к разделению нельзя не выбрать?
  • Что добавляет к этой картине PACELC?

Разбор темы

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования