CAP теорема для Data Engineer

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

Карьерник — Duolingo для аналитиков: 10 минут в день тренируй SQL, Python, A/B, статистику, метрики и ещё 3 темы собеса. 1500+ вопросов в Telegram-боте. Бесплатно.

CAP формулировка

Eric Brewer 2000.

C — Consistency. Все nodes видят same data.

A — Availability. Every request получает response.

P — Partition tolerance. System operates при network failures между nodes.

Утверждение. В distributed system невозможно одновременно guarantee все три. При network partition — choose between C и A.

CP системы

При partition — sacrifice availability, maintain consistency.

Examples:

  • HBase, MongoDB (default config).
  • ZooKeeper, etcd.
  • Most banks.

Поведение. При partition — minority side returns error («cannot serve»). Majority continues.

AP системы

При partition — sacrifice consistency, maintain availability.

Examples:

  • Cassandra, DynamoDB, Riak.
  • DNS.
  • Web cache layers.

Поведение. Both sides serve. Conflicts resolved later (eventual consistency, last-write-wins, vector clocks).

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

PACELC

Расширение CAP.

If Partition: choose A или C.
Else: choose Latency или Consistency.

Нормально operating system — все равно trade-off latency vs consistency.

  • PA/EL. AP с low latency normal time. Cassandra, DynamoDB.
  • PC/EC. CP с consistency normal time. Postgres replication.

Применение для DE

OLTP БД. Postgres, MySQL — CP. Strong consistency обязательна для финансов.

OLAP DWH. Часто eventual consistency OK. Read replicas могут lag.

Кэши. AP — Redis cluster, Memcached. Stale data tolerable.

Стриминг. Kafka — CA на partition, AP cross-cluster (mirror maker).

Sufficient. Ни одна system pure C / pure A — design choices, не absolute.

Связанные темы

FAQ

Это официальная информация?

Нет. Статья основана на работе Brewer 2000, доказательствах Gilbert / Lynch 2002.


Тренируйте Data Engineering — откройте тренажёр с 1500+ вопросами для собесов.