В кворумной системе из N реплик при каком условии чтение гарантированно увидит последнюю запись?
- Что такое W + R > N?
При W + R > N множества реплик записи и чтения пересекаются, и чтение увидит последнюю подтверждённую запись. N — реплик, W — подтверждений записи, R — опрошенных при чтении.
- Типично N = 3, W = 2, R = 2 — переживает отказ одного узла
- Меньше W или R — быстрее и доступнее, но возможны устаревшие чтения
- Это не линеаризуемость: прерванные и конкурентные записи ломают гарантию
А ещё Cassandra: уровни ONE, QUORUM, ALL на запись и чтение
Подробно
N — число реплик, W — сколько подтверждают запись, R — сколько опрашивают при чтении. Если W + R > N, наборы гарантированно пересекаются хотя бы на одной свежей реплике. Уменьшая W или R, выбираешь скорость и доступность ценой возможной устаревшей выдачи.
Что хотят услышать
- Условие и почему пересечение даёт свежесть.
- Настройки и компромиссы.
- Ограничение условия.
Частые ошибки
- Думать, что кворум всегда означает большинство.
- Забывать, что меньшие W/R дают eventual consistency.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗W = 1 и R = 1 — так кворум собирается быстрее всего
- ✗W + R = N — каждая реплика участвует либо в записи, либо в чтении
- ✓W + R > N — множества записи и чтения пересекаются
- ✗Только при N = 1, когда реплика в системе вообще одна-единственная
Что спросят дальше
- Как кворум влияет на задержку записи?
- Что такое hinted handoff?
Разбор темы
- CAP и согласованность
Точная формулировка CAP и типичные искажения, неизбежность разделения и выбор C/A по операции, спектр согласованности и сессионные гарантии, кворумы N/R/W и их пределы, PACELC и разрешение конфликтов.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.