Теорема CAP: согласованность, доступность и устойчивость к разделениям

Облачные вычисления обогатили цифровой мир множеством новых возможностей. Предоставление вычислительных ресурсов через Интернет позволяет, в частности, быстро внедрять инновации, гибко использовать ресурсы и соответствующие возможности масштабирования, которые могут быть индивидуально настроены в соответствии с вашими требованиями. Однако теорема CAP показывает, что обеспечение такой гибкости приводит к компромиссам в других областях. Мы объясним, что такое теорема CAP (также называемая теоремой Брюера), и покажем, где эта теорема о распределенных системах может проявляться на практике.

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

Теорема CAP утверждает, что в распределенной системе невозможно одновременно обеспечить или гарантировать более двух из следующих трех свойств:

  • Согласованность: Все клиенты видят одни и те же данные в одно и то же время.
  • Доступность: Все клиенты могут осуществлять доступ на чтение и запись в любое время, поскольку система всегда отвечает.
  • Устойчивость к разделениям: Система может продолжать работать как единое целое, даже если отдельные узлы выходят из строя или не могут больше взаимодействовать друг с другом.
Факт

Теорема CAP основана на предположении, выдвинутом компьютерным ученым Эриком Брюэром, которое он представил на Симпозиуме по принципам распределенных вычислений (PODC) в 2000 году. Этот принцип об ограничении свойств в распределенных системах также называют теоремой Брюэра. В 2002 году Сет Гилберт и Нэнси Линч из Массачусетского технологического института опубликовали аксиоматическое доказательство этой гипотезы и, таким образом, утвердили ее как теорему.

В настоящее время при создании новой распределенной системы эта теорема используется в качестве справочника, и выбирается базовая модель, ориентированная на два из трех свойств. Группы независимых компьютеров в единой системе в целом можно разделить на три категории в соответствии с теоремой CAP:

  • CP-система (согласованность и устойчивость к разбиению)
  • система AP (доступность и устойчивость к разбиению)
  • система CA (согласованность и доступность)

Теорема CAP на практике

Чтобы пояснить идею, лежащую в основе теоремы CAP, следующие примеры распределенных систем докажут справедливость этого принципа. Кроме того, они подчеркивают, в каком отношении теорема Брюера справедлива.

Пример системы AP: система доменных имен

Известным примером системы AP является DNS (т.е. система доменных имен). Этот центральный компонент сети отвечает за преобразование доменных имен в IP-адреса и ориентирован на два свойства — доступность и устойчивость к разделениям. Благодаря большому количеству серверов, эта система практически всегда доступна. Если один сервер DNS выходит из строя, его место займет следующий. Однако, согласно теореме CAP, согласованность в DNS не гарантируется. Если запись DNS изменена, может пройти несколько дней, прежде чем изменение будет передано в иерархию системы и станет видимым для всех клиентов.

Пример системы CA: реляционные системы управления базами данных

Системы управления базами данных, основанные на реляционной модели баз данных, являются хорошим примером CA-систем. Эти системы баз данных в первую очередь характеризуются высоким уровнем согласованности, а также стремятся достичь максимально возможного уровня доступности. Однако при определенных обстоятельствах доступность может быть снижена в пользу согласованности. При этом устойчивость к разбиению играет менее важную роль.

Пример системы CP: финансовые и банковские приложения

Высокая доступность является одним из наиболее важных свойств большинства распределенных систем, поэтому системы CP редко используются на практике. Однако эти системы оказались особенно ценными в финансовом секторе. Банковские приложения должны иметь возможность надежно списывать и переводить средства со счетов. Они зависят от согласованности и устойчивости к разделениям для предотвращения ошибок в учете — даже в случае перебоев в передаче данных.

Оцените статью
cdelat.ru
Добавить комментарий