TGViewer
Женя Янченко Женя Янченко @jane_yanchenko · 5.51K subscribers
Post #69 2.33K
Операции записи и чтения по кворуму

Для n реплик
Операция записи должна быть подтверждена w реплик
Операция чтения должна опросить r реплик

Операции записи и чтения, удовлетворяющие соотношению
w + r > n
называются операциями по кворуму.

Можно рассматривать r и w как минимальные количества «голосов», необходимых для признания операции чтения или записи приемлемой.

Значения n,w и r обычно можно настраивать.
Чаще всего n делают нечетным (обычно 3 или 5),
а w = r = (n + 1) / 2 (с округлением в большую сторону).

Если у нас мало операций записи и много операций чтения, то можно увеличить w и уменьшить r.

Базы данных с кворумом могут выдержать отказы и замедление работы отдельных реплик, поскольку запросам не нужно ждать ответа от всех n реплик — достаточно, чтобы ответили w или r реплик.

Например, при n = 5, w = 3, r = 3 система может позволить себе 2 недоступных узла.

Поэтому БД с репликацией без лидера подходят для приложений:
🟣с высокой доступность
🟣с низкой задержкой
🟣допускающих иногда чтение устаревших данных

На мой взгляд эти характеристики подходят, например, соцсетям.

Нестрогий кворум и направленная передача

В кластере может быть много реплик, из которых мы выделяем n для кворума. Возможна ситуация, когда во время сбоя сети клиент может подключиться к каким-то репликам, но не к тем, которые выделены ему для кворума. Если в этом случае база все равно запишет значения, пусть и не в «родные» n реплик, то мы получим нестрогий кворум (sloppy quorum).

После исправления сбоя сети все операции записи, временно отправленные в какую-либо реплику вместо недоступной, отправляются в соответствующие «родные» реплики. Это называется направленной передачей (hinted handoff).

Нестрогие кворумы полезны для повышения доступности для записи: база может принимать операции записи до тех пор, пока доступны любые w реплик. Однако в случае нестрого кворума нельзя гарантировать чтение актуального значения даже из r реплик, поскольку актуальное значение может быть временно записано на какие-то реплики вне множества n.

Нестрогие кворумы — дополнительная возможность, могут быть по-умолчанию отключены.

#кабанчик #сисдиз #репликация
  • 👍 9
  • ❤ 5
  • 🔥 4
More from @jane_yanchenko
  1. Sep 25, 2026В прошлой жизни, когда я была менеджером проектов, одним из первых мест работы у меня был…
  2. Sep 23, 2026Куда пропало обращение - развязка В прошлом посте у нас загадочно пропало обращение 58122.…
  3. Sep 23, 2026Куда пропало обращение Однажды от руководителя техподдержки пришло письмо, суть которого с…
  4. Sep 21, 2026🔗 Подборка постов про Кафку Как обещала на стриме, собрала посты про Кафку в удобное огла…
  5. Sep 21, 2026🎞 Готова запись стрима про Кафку: https://youtu.be/2aRKsD-MWDA Большое спасибо всем, кто…
  6. Sep 16, 2026Сегодня стрим по Кафке в 19:00 Планируем не в формате доклада, а в формате вопрос-ответ, ч…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →