open atlas
↑ К треку
Основы System Design SD · 04 · 06

Распределение данных: свободное припоминание

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

SD Senior ◷ 14 min
Уровень
ОсновыJuniorMiddleSenior

Припоминание бьёт перечитывание. На каждый промпт скажи или напиши полный ответ из памяти — включая неравенство и режим отказа — прежде чем открыть образец. Усилие реконструкции и заставляет лаг репликации, хеш-кольцо и PACELC прилипнуть.

Реконструируй спину юнита, не подглядывая: почему каждая копия отстаёт и как failover теряет записи, почему ровное число ключей всё равно даёт горячую точку, почему mod-N губит решардинг и кольцо его чинит, что гарантирует неравенство кворума и чем CAP отличается от PACELC.

Вспомните перед уходом
  1. 01
    Сравни синхронную и асинхронную репликацию и объясни, как failover теряет подтверждённые записи.
  2. 02
    Что такое read-your-writes и как его сохранить при лаге репликации?
  3. 03
    Почему ровное число ключей всё равно создаёт горячий шард и как это смягчить?
  4. 04
    Почему hash(key) mod N губит решардинг и как хеш-кольцо это чинит (с виртуальными узлами)?
  5. 05
    Сформулируй неравенство кворума и сравни CAP с PACELC.
Итог

Если ты смог реконструировать каждый ответ из памяти, ты держишь спину юнита: репликация копирует данные ради чтений и выживания, но async-репликация подтверждает до долговечности, так что failover теряет подтверждённые записи (держи синхронную реплику; маршрутизируй собственные чтения пользователя на актуальный узел ради read-your-writes). Шардинг по ключу всё равно даёт горячий шард при перекосе, ведь ровное число ключей не ровная нагрузка — разбей, закешируй или изолируй ключ-знаменитость. Consistent hashing кольцует узлы и ключи, так что добавление одного двигает лишь ~1/N (виртуальные узлы балансируют дуги и размазывают отказ), тогда как mod N переотобразил бы почти все и снёс бы кеш. Кворум гарантирует свежее чтение, когда R + W > N. А CAP — лишь выбор C-против-A во время партиции, тогда как PACELC добавляет повседневный компромисс задержка-против-консистентности — так что выбирай по кейсу вдоль спектра linearizable → eventual. Нить, связывающая всё: на этой глубине распределение — намеренный выбор, какая неконсистентность приемлема для каждого куска данных, а не поведение, что ты обнаруживаешь в проде.

Что-то непонятно?

Задай вопрос по этому уроку. Вопросы анонимны и попадают напрямую автору — урок станет лучше.

хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.