Вот как я обсуждаю CAP, особенно в отношении P.
CA возможен только в том случае, если у вас все в порядке с монолитной базой данных с одним сервером (возможно, с репликацией, но все данные в одном «блоке сбоев» - серверы не считаются частично сбоев).
Если ваша проблема требует масштабирования, могут возникнуть распределенные и многосерверные --- сетевые разделы. Вы уже требуете P. Немногие проблемы, к которым я подхожу, поддаются парадигмам, всегда ориентированным на один сервер (или, как сказал Стоунбрейкер, «распределенные ставки - это столы»). Если вы можете обнаружить проблему с CA, такие решения, как традиционная не масштабируемая СУБД, дают много преимуществ.
Для меня редкость: поэтому мы переходим к обсуждению AP против CP.
Вы можете выбирать между операциями AP и CP только при наличии раздела. Если сеть и оборудование работают правильно, вы получите свой торт и съедите его тоже.
Давайте обсудим различие AP / CP.
AP - когда есть сетевой раздел, пусть независимые части работают свободно.
CP - когда есть сетевой раздел, отключите узлы или запретите чтение и запись, чтобы возникли детерминированные сбои.
Мне нравятся архитектуры, которые могут выполнять обе задачи, потому что некоторые проблемы - это AP, а некоторые - CP, а некоторые базы данных могут делать и то, и другое. Среди решений CP и AP есть и тонкости.
Например, в наборе данных AP у вас есть возможность как несогласованного чтения, так и генерации конфликтов записи - это два разных возможных режима AP. Может ли ваша система быть настроена для точки доступа с высокой доступностью чтения, но не разрешать конфликты записи? Или ваша система AP может принимать конфликты записи с помощью надежной и гибкой системы разрешения? Понадобятся ли вам оба варианта, или вы можете выбрать систему, в которой есть только одна?
В системе CP, сколько недоступности вы получаете с небольшими разделами (один сервер), если таковые имеются? Большая репликация может увеличить недоступность в системе CP, как система справляется с этими компромиссами?
Все эти вопросы нужно задать с помощью CP против AP.
В этой области сейчас отлично читается пост Брюера «12 лет спустя». Я считаю, что это продвигает дебаты в CAP с ясностью, и очень рекомендую это.
http://www.infoq.com/articles/cap-twelve-years-later-how-the-rules-have-changed