Ответ
CAP-теорема (теорема Брюера) — это концепция в распределенных системах, которая утверждает, что в условиях сетевого раздела (Partition tolerance) распределенная система может гарантировать одновременно только либо согласованность (Consistency), либо доступность (Availability)**.
Расшифровка свойств:
- Согласованность (C): Все узлы в кластере видят одни и те же данные в один и тот же момент времени. Чтение после записи всегда возвращает последнее записанное значение.
- Доступность (A): Каждый запрос к системе (независимо от состояния узлов) получает ответ (успешный или ошибочный), но без гарантии, что это самые свежие данные.
- Устойчивость к разделению (P): Система продолжает работать, несмотря на произвольный обрыв связи (partition) между некоторыми своими узлами.
Выбор в реальных системах (CP или AP):
| Выбор | Примеры БД | Поведение при сетевом разделе |
|---|---|---|
| CP (Согласованность + Устойчивость) | PostgreSQL (в кластерных режимах), ZooKeeper, etcd | Система блокирует запись/чтение на разделенных узлах, чтобы избежать несогласованности. Жертвует доступностью (A). |
| AP (Доступность + Устойчивость) | Cassandra, DynamoDB, Riak | Все узлы остаются доступными для чтения и записи, но данные на разделенных узлах могут расходиться. Жертвует согласованностью (C) в момент раздела (обеспечивая eventual consistency). |
Важность для DevOps: Понимание CAP-теоремы критично при проектировании и выборе инфраструктуры баз данных для микросервисов. Например, для хранения конфигурации (где важна согласованность) выбирают CP-систему (etcd), а для хранения логов или пользовательских сессий (где важнее доступность) — AP-систему (Cassandra).
Видео-ответы
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶