← Назад к вопросам

Что такое CAP-теорема и как она влияет на выбор базы данных?

2.0 Middle🔥 201 комментариев
#Архитектура и проектирование

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

CAP-теорема и выбор базы данных

CAP-теорема утверждает, что распределённая система может одновременно гарантировать только ДВА из трёх свойств:

  • C (Consistency) — все узлы видят одни данные
  • A (Availability) — система всегда отвечает
  • P (Partition tolerance) — работает при разделении сети

Три типа систем

CP (Consistency + Partition) — жертвует доступностью

  • Гарантирует синхронизацию всех узлов
  • При проблемах сети может не отвечать
  • Примеры: HBase, BigTable, MongoDB, PostgreSQL
  • Используй: финансовые системы, аналитика

AP (Availability + Partition) — жертвует согласованностью

  • Всегда отвечает, даже если узлы не синхронизированы
  • Eventual consistency: данные синхронизируются позже
  • Примеры: Cassandra, DynamoDB, Riak
  • Используй: социальные сети, кэши, real-time системы

CA — нет устойчивости к разделению (в интернете невозможен)

Пример выбора

Банковская система:
- Важна точность (C)
- Можно быть недоступным кратко (не A)
- Выбор: CP система (PostgreSQL + синхронная репликация)

Социальная сеть (лайки):
- Важна доступность (A)
- Рассогласование временно допустимо (не C)
- Выбор: AP система (Cassandra, DynamoDB)

Регулируемая консистентность

Многие БД позволяют выбирать консистентность:

# Cassandra: от AP к CP
# Quorum ONE (быстро, AP)
session.execute(query, consistency_level=ONE)

# Quorum ALL (медленно, CP)
session.execute(query, consistency_level=ALL)

Вывод: нет "лучшей" БД. CAP помогает понять компромиссы выбора.

Что такое CAP-теорема и как она влияет на выбор базы данных? | PrepBro