Jump to content

Теорема CAP

В теории баз данных теорема CAP , также называемая теоремой Брюера в честь ученого-компьютерщика Эрика Брюэра , утверждает, что любое распределенное хранилище данных может обеспечить только две из следующих трех гарантий: [1] [2] [3]

Последовательность
Каждое чтение получает самую последнюю запись или ошибку.
Доступность
Каждый запрос, полученный исправным узлом системы, должен привести к ответу. Это определение доступности в теореме CAP, определенное Гилбертом и Линчем. [1] Обратите внимание, что доступность, определенная в теореме CAP, отличается от высокой доступности в архитектуре программного обеспечения. [4]
Допуск раздела
Система продолжает работать, несмотря на то, что произвольное количество сообщений отбрасывается (или задерживается) сетью между узлами.

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

  • отменить операцию и тем самым снизить доступность, но обеспечить согласованность
  • продолжить операцию и, таким образом, обеспечить доступность, но рисковать несогласованностью. Обратите внимание, что это не обязательно означает, что система имеет высокую доступность для пользователей. [5]
Теорема CAP Диаграмма Эйлера

Таким образом, при наличии сетевого раздела приходится выбирать между согласованностью или доступностью. Обратите внимание, что согласованность, определенная в теореме CAP, сильно отличается от согласованности, гарантированной в ACID транзакциях базы данных . [6]

Объяснение [ править ]

Ни одна распределенная система не застрахована от сетевых сбоев, поэтому обычно приходится мириться с разделением сети. [7] [8] При наличии раздела остается два варианта: согласованность или доступность . При выборе согласованности вместо доступности система вернет ошибку или тайм-аут, если актуальность конкретной информации не может быть гарантирована из-за разделения сети. При выборе доступности вместо согласованности система всегда будет обрабатывать запрос и пытаться вернуть самую последнюю доступную версию информации, даже если она не может гарантировать ее актуальность из-за разделения сети.

В отсутствие раздела могут быть обеспечены как доступность, так и согласованность. [9]

Системы баз данных, разработанные с учетом традиционных гарантий ACID , такие как РСУБД, предпочитают согласованность , а не доступность, тогда как системы, разработанные на основе философии BASE в движении NoSQL , предпочитают доступность, а не согласованность. , распространенной, например, [10]

История [ править ]

По словам ученого-компьютерщика Эрика Брюэра из Калифорнийского университета в Беркли , теорема впервые появилась осенью 1998 года. [10] Он был опубликован как принцип CAP в 1999 году. [11] и представлено как гипотеза Брюэром на Симпозиуме по принципам распределенных вычислений (PODC) 2000 года. [12] В 2002 году Сет Гилберт и Нэнси Линч из Массачусетского технологического института опубликовали формальное доказательство гипотезы Брюэра, превратив ее в теорему . [1]

В 2012 году Брюэр разъяснил некоторые из своих позиций, в том числе, почему часто используемая концепция «два из трех» может вводить в заблуждение, поскольку разработчикам систем нужно жертвовать согласованностью или доступностью только при наличии разделов; существуют методы управления разделами и восстановления. Брюэр также отметил, что определение непротиворечивости, используемое в теореме CAP, отличается от определения, используемого в ACID . [10] [13]

Похожая теорема, устанавливающая компромисс между согласованностью и доступностью в распределенных системах, была опубликована Бирманом и Фридманом в 1996 году. [14] Результат Бирмана и Фридмана ограничил эту нижнюю границу некоммутирующими операциями.

Теорема PACELC , представленная в 2010 году, [9] основывается на CAP, утверждая, что даже при отсутствии разделения существует еще один компромисс между задержкой и согласованностью. PACELC означает, что если произойдет разделение (P), компромисс будет между доступностью (A) и согласованностью (C); В противном случае (E) приходится выбирать между задержкой (L) и согласованностью (C).

См. также [ править ]

Ссылки [ править ]

  1. Перейти обратно: Перейти обратно: а б с Гилберт, Сет; Линч, Нэнси (2002). «Гипотеза Брюэра и возможность создания последовательных, доступных и устойчивых к разделению веб-сервисов». Новости ACM SIGACT . 33 (2). Ассоциация вычислительной техники (ACM): 51–59. дои : 10.1145/564585.564601 . ISSN   0163-5700 . S2CID   15892169 .
  2. ^ «Теорема Брюера о CAP» . www.julianbrowne.com . 11 января 2009 г.
  3. ^ «Теорема Брюэрса CAP о распределенных системах» . Роянс.нет . 14 февраля 2010 г.
  4. ^ Фаулер, Адам (2015). NoSQL для чайников . Для чайников. ISBN  978-8126554904 .
  5. ^ Фаулер, Адам (2015). NoSQL для чайников . Для чайников. ISBN  978-8126554904 .
  6. ^ Лиошон, Николя. «Сбивающая с толку формулировка CAP и ACID» . Этот долгий путь . Проверено 1 февраля 2019 г.
  7. ^ Клеппманн, Мартин (18 сентября 2015 г.). Критика теоремы CAP (доклад). Apollo - Репозиторий Кембриджского университета. arXiv : 1509.05393 . Бибкод : 2015arXiv150905393K . дои : 10.17863/CAM.13083 . S2CID   1991487 . Проверено 24 ноября 2019 г.
  8. ^ Мартин, Клеппманн. «Пожалуйста, прекратите звонить в базы данных CP или AP» . Блог Мартина Клеппмана . Проверено 24 ноября 2019 г.
  9. Перейти обратно: Перейти обратно: а б Абади, Дэниел (23 апреля 2010 г.). «Размышления о СУБД: проблемы с CAP и малоизвестной системой NoSQL Yahoo» . Размышления о СУБД . Проверено 23 января 2018 г.
  10. Перейти обратно: Перейти обратно: а б с Брюэр, Эрик (2012). «CAP двенадцать лет спустя: как изменились «правила»» . Компьютер . 45 (2). Институт инженеров по электротехнике и электронике (IEEE): 23–29. дои : 10.1109/mc.2012.37 . ISSN   0018-9162 . S2CID   890105 .
  11. ^ Армандо Фокс; Эрик Брюэр (1999). Урожай, урожайность и масштабируемые толерантные системы . Учеб. 7-й семинар «Актуальные темы операционных систем» (HotOS 99). IEEE CS. стр. 174–178. дои : 10.1109/HOTOS.1999.798396 .
  12. ^ Эрик Брюэр. «На пути к надежным распределенным системам» (PDF) .
  13. ^ Карпентер, Джефф; Хьюитт, Эбен (июль 2016 г.). Кассандра: Полное руководство (2-е изд.). О'Рейли Медиа. ISBN  9781491933657 . В феврале 2012 года Эрик Брюэр представил обновленный взгляд на свою теорему CAP   ... Теперь Брюэр описывает аксиому «2 из 3» как несколько вводящую в заблуждение. Он отмечает, что разработчикам нужно жертвовать согласованностью или доступностью только при наличии разделов, и что достижения в методах восстановления разделов позволили разработчикам достичь высоких уровней как согласованности, так и доступности.
  14. ^ Кен Бирман; Рой Фридман (апрель 1996 г.). «Торговая последовательность ради доступности в распределенных системах» . hdl : 1813/7235 .

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: ab24c6e00548cf78f43caf83d53b8ed8__1717513320
URL1:https://arc.ask3.ru/arc/aa/ab/d8/ab24c6e00548cf78f43caf83d53b8ed8.html
Заголовок, (Title) документа по адресу, URL1:
CAP theorem - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)