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

В кворумной системе из N реплик при каком условии чтение гарантированно увидит последнюю запись?

SeniorCAP и согласованность
Ещё спрашивают так:
  • Что такое 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?

Разбор темы

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

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

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

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

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