Что согласно CAP-теореме приходится выбирать во время сетевого разделения?
- Что выбрать при сетевом разделении — 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 на примере?
Разбор темы
- CAP и согласованность
Точная формулировка CAP и типичные искажения, неизбежность разделения и выбор C/A по операции, спектр согласованности и сессионные гарантии, кворумы N/R/W и их пределы, PACELC и разрешение конфликтов.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.