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