← Назад к вопросам
Что такое 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 помогает понять компромиссы выбора.