awesome-everything EN
↑ Обратно к восхождению

Распределённые системы

Часы: тест с множественным выбором

Суть Синтез по юниту в формате множественного выбора: clock skew, физические vs логические часы, Lamport vs vector clock, happens-before, детекция конкурентности и TrueTime.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 13 min

Шесть вопросов через весь юнит. Каждый — это реальное решение при проектировании или отладке распределённого хранилища, а не определение для зубрёжки: как упорядочить события, когда настенные часы врут.

Цель

Убедись, что связываешь clock skew, выбор между физическими и логическими часами, семантику Lamport vs vector clock, happens-before и TrueTime — синтез, к которому вёл урок.

Викторина

Кластер Cassandra использует last-write-wins по клиентским timestamp. Часы одного узла отстают на 1.5с. Поздний апдейт пользователя, прошедший через этот узел, исчезает после рефреша, при этом вернулся 200 OK. В чём корневая причина?

Викторина

Нужно разрешение конфликтов в реплицированном KV-хранилище, которое никогда не должно молча терять конкурентный апдейт. Lamport clock или vector clock?

Викторина

Lamport clock гарантирует: если A happens-before B, то L(A) < L(B). Почему нельзя из L(A) < L(B) заключить, что A вызвало B?

Викторина

Твои vector clock корректны, но кластер из 200 узлов теперь возит 200 счётчиков метаданных с каждой записью, и это растёт с добавлением узлов. Какой реальный компромисс ты принял?

Викторина

Что отдаёт TrueTime в Spanner и что делает с этим commit-wait?

Викторина

Удаление в LWW-хранилище иногда подавляет каждую реальную запись по ключу на дни, даже записи, пришедшие задолго после удаления. В чём механизм?

Итог

Сквозная линия: настенное время не примитив упорядочивания, поэтому LWW превращает skew в тихую потерю данных (а tombstone с будущей датой — в многодневное подавление ключа). Логические часы упорядочивают по причинности: Lamport даёт дешёвый O(1) тотальный порядок, но не детектирует конкурентность, поэтому vector clock добавляют счётчик на узел, чтобы флагать конкурентные записи ценой O(n) метаданных, которые надо прунить. TrueTime идёт третьим путём: квантует неопределённость часов как ограниченный интервал ε и пережидает его commit-wait ради настоящей external consistency. Выбирай механизм по тому, что обязан знать — порядок, конкурентность или глобальную истину.

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

Trademarks belong to their respective owners. Editorial reference only.