Eventual consistency на собеседовании системного аналитика
Карьерник — Duolingo для аналитиков: 10 минут в день тренируй SQL, Python, A/B, статистику, метрики и ещё 3 темы собеса. 1500+ вопросов в Telegram-боте. Бесплатно.
Содержание:
Что такое eventual consistency
После updates — system eventually становится consistent (in absence новых updates).
В meantime — different nodes могут видеть different values.
Time 0: A writes "X=5" to node 1.
Time 1: Node 2 reads X → may return old value or "5" (depends on replication).
Time 5: Replication propagates → all nodes return "5".Trade-off vs strong consistency: lower latency, higher availability.
BASE
Alternative to ACID для distributed systems.
- Basically Available. Always responds.
- Soft state. State может change даже без input.
- Eventually consistent. Consistency achieved over time.
Cassandra, DynamoDB — BASE systems.
Conflict resolution
Two writes к same key из different nodes.
Last-Write-Wins (LWW). Compare timestamps. Newer wins.
Pros: simple. Cons: clock skew issues, data loss.
Application-level merge. Domain-specific (например, shopping cart — merge sets).
CRDT-based. Mathematical resolve.
Manual conflict resolution. Detect, ask user.
Vector clocks
Logical timestamps. Each node имеет counter, incremented on writes.
Node A: {A: 1, B: 0}
Node A writes → {A: 2, B: 0}
Node B writes (без seeing A's) → {A: 0, B: 1}
Two writes — concurrent (neither dominates other).Vector clocks detect causality / concurrency.
CRDTs
Conflict-free Replicated Data Types. Math construct guaranteeing eventual consistency без coordination.
Examples:
- G-Counter. Grow-only counter.
- PN-Counter. Increment / decrement.
- OR-Set. Observed-Remove Set.
- LWW-Register. Last-write-wins.
Operations commutative, associative — order не matters. Final state = same regardless порядка.
Used в Riak, Redis (CRDB), collaborative editing (Y.js, Automerge).
Связанные темы
- CAP теорема для SA
- 2PC vs Saga для SA
- CQRS для SA
- ACID и уровни изоляции для SA
- Подготовка к собесу системного аналитика
FAQ
Это официальная информация?
Нет. Статья основана на distributed systems literature (Lamport, Vogels, Shapiro CRDT).
Тренируйте системный анализ — откройте тренажёр с 1500+ вопросами для собесов.