Встречается на 8% собеседований по Python

Что такое CAP теорема

CAP-теорема (теорема Брюера) — это фундаментальный принцип в распределённых системах, который гласит, что в любой такой системе можно гарантировать выполнение только двух из трёх свойств:

- Согласованность (Consistency): Все узлы (ноды) системы видят одни и те же данные в один и тот же момент времени. Запись на один узел немедленно становится видна на всех остальных.

- Доступность (Availability): Система всегда отвечает на запросы (даже если часть узлов недоступна). Каждый запрос получает ответ (успех или failure), но без гарантии, что данные актуальны.

- Устойчивость к разделению (Partition Tolerance): Система продолжает работать, несмотря на сбои в сети, которые приводят к потере связи между узлами ("разделению" системы на части).

Главный компромисс CAP

Теорема утверждает, что при сетевом разделении (Partition) вы должны выбрать между Согласованностью (C) и Доступностью (A).

На практике это означает три выбора:

1. CA-системы (Согласованность + Доступность)

Жертвуют: Устойчивостью к разделению.

Как: Это системы, которые работают только в идеальных сетевых условиях (например, классические однодемные БД). На практике истинно CA-систем не существует, так как сетевые сбои неизбежны.

2. CP-системы (Согласованность + Устойчивость к разделению)

Жертвуют: Доступностью.

Как: При сетевом разделении система заблокирует запись или чтение на некоторых узлах, чтобы гарантировать, что данные останутся согласованными. Она будет отвечать ошибкой или "подвиснет", ожидая восстановления связи.

3. AP-системы (Доступность + Устойчивость к разделению)

Жертвуют: Согласованностью.

Как: При разделении системы разные её узлы могут отдавать разные (несогласованные) данные. После восстановления связи система разрешит конфликты (например, с помощью механизмов последней записи или пользовательского разрешения конфликтов).

Важное уточнение

CAP-теорема часто понимается не совсем верно. Её ключевой момент:

Выбор между C и A происходит только в условиях сетевого раздела (P). В нормальном режиме работы система может обеспечивать все три свойства.

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы