Вопрос с собеседования · Базы данных

Что согласно CAP-теореме приходится выбирать во время сетевого разделения?

MiddleCAP и согласованность
Ещё спрашивают так:
  • Что выбрать при сетевом разделении — C или A?
Коротко

Во время разделения сети — согласованность или доступность: CP-система откажет, чтобы не отдать устаревшее; AP-система ответит из своей реплики, рискуя устаревшими данными.

  • P (разделение) не выбирают — оно случается
  • Выбор можно делать по типу данных: деньги — CP, лента — AP
  • Без разделения цена согласованности — задержка (PACELC)

А ещё Примеры CP: etcd, ZooKeeper; AP: Cassandra, DynamoDB по умолчанию

Подробно

Сетевые разделения в распределённой системе неизбежны, поэтому P нельзя «не выбрать». Реальный выбор возникает только во время разделения: CP-система предпочтёт вернуть ошибку, чем устаревшие данные; AP-система ответит из локальной реплики, рискуя отдать устаревшее.

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

  • Выбор между C и A только во время разделения.
  • Поведение CP и AP систем с примерами.
  • Выбор по типу данных.

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

  • Думать, что можно отказаться от P.
  • Считать, что выбор C/A происходит постоянно, а не только при разделении.

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

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

Показать варианты и ответ
  • ✗Между производительностью и объёмом занимаемой памяти
  • ✓Между согласованностью (C) и доступностью (A)
  • ✗Между устойчивостью к разделению (P) и доступностью (A)
  • ✗Между нормализацией и денормализацией схемы данных

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

  • Что добавляет PACELC к CAP?
  • Чем CP-система отличается от AP на примере?

Разбор темы

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

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

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

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

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