Егор Урванов

Теорема CAP

Спеки и архитектура · согласованность, доступность, разрыв связи

Когда данные лежат на нескольких серверах и связь между ними оборвалась, система не может одновременно отвечать на каждый запрос и показывать всем одни и те же данные: приходится либо ждать восстановления связи, либо отвечать по своей, возможно устаревшей, копии. Эрик Брюер высказал это в 2000 году, Сет Гилберт и Нэнси Линч доказали в 2002-м. Позже Брюер писал, что формула «два из трёх» упрощает картину: выбор встаёт только во время разрыва.

клиент«сколько броней?»сервер 1сервер 2здесь свежая бронь×связь оборваласьC: ждать связиданные верны, ответа пока нетA: ответить сейчасответ есть, но без свежей брониждать или угадать —как проверка программы● модель, люди, системы, данные  ● агент и харнесс  ● риск, стоп, границаСвязь между серверами оборвалась: либо ждать и не отвечать, либо отвечать по своей копии, которая может устареть

Буквы названия: C — согласованность, все видят одни и те же данные; A — доступность, каждый запрос получает ответ; P — устойчивость к разрыву связи, система продолжает работать, когда сообщения между серверами теряются или опаздывают. Разрывы связи случаются сами, поэтому на практике выбирают между C и A на время разрыва.

Общее ядро с теоремой Райса: пока событие не произошло, нельзя понять, случится ли оно позже или не случится никогда, сколько бы ни ждать. Сервер не знает, потеряно сообщение соседа или опаздывает; проверка программы не знает, закончится программа или будет работать вечно. Поэтому и выходы похожи: пока время не ограничено, выбирают одно из двух — ждать или ответить сейчас с риском ошибки; а ограничение времени снимает саму развилку, потому что после предела «никогда» уже известно. Причины невозможности разные: серверу не хватает сведений, а проверке программы сведений хватает, весь код перед ней, но ответ из него нельзя вычислить. Это сопоставление автора, единой теоремы для обоих случаев нет.

Источник: Эрик Брюер: CAP двенадцать лет спустя

Подробнее: Теорема Райса и связь с CAP

Где встречается · 2

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

Весь глоссарий

© 2026 Егор Урванов