Время и порядок операций влияют на согласованность и разрешение конфликтов в распределённых системах.
Часы
-
Физические (wall clock): могут дрейфовать и несинхронны.
-
Логические (Lamport): дают порядок «случилось-перед» без реального времени.
-
Векторные часы: фиксируют причинность между узлами, позволяют увидеть конкурирующие обновления.
Порядок доставки
-
Total order broadcast/replication log: единый порядок событий (основа консенсуса).
-
Partially ordered лог (по ключу/партиции): порядок внутри ключа, но не глобально.
Зачем фиксировать
-
Конфликты записи (multi-leader, CRDT), дедупликация, idempotency key.
-
Событийная обработка: корректный подсчёт, устранение дубликатов, задержанные события.
Практика
-
Синхронизация времени (NTP), допуски на дрейф.
-
Метаданные: event time, processing time, trace id, версия/clock.
-
Политики: tie-breaking, повторная обработка и детерминированность.