ScholarGate
Ассистент

CAP и модели согласованности

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

Найти тему в PaperMindСкороFind papers & topics
Tools & resources
Скачать слайды
Learn & explore
ВидеоСкоро

Definition

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

Scope

Эта тема охватывает формальные модели согласованности — линеаризуемость, последовательную согласованность, причинную согласованность и итоговую согласованность — и их упорядочение по силе; теорему CAP, ее точную формулировку и доказательство; а также уточнения, такие как PACELC, которые также учитывают компромисс между задержкой и согласованностью в отсутствие разделов. Она предоставляет словарь для спецификации и сравнения гарантий реплицированных систем.

Core questions

  • Чем отличаются по силе линеаризуемость, последовательная, причинная и итоговая согласованность?
  • Что именно запрещает и что разрешает теорема CAP?
  • Как соображения задержки уточняют компромисс согласованности при отсутствии раздела?

Key theories

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

Clinical relevance

Каждая распределенная база данных и служба хранения должны объявлять модель согласованности, а компромиссы CAP и PACELC объясняют, почему одни системы отдают приоритет доступности, а другие — согласованности; их понимание необходимо для выбора и эксплуатации инфраструктуры данных.

History

Лампорт определил последовательную согласованность в 1979 году, а Херлихи и Винг формализовали линеаризуемость в 1990 году; Брюэр выдвинул гипотезу о компромиссе CAP в 2000 году, Гилберт и Линч доказали ее в 2002 году, а переосмысление PACELC Абади в 2012 году прояснило, что задержка, а не только разделы, определяет выбор согласованности.

Debates

Часто ли CAP неверно истолковывается?
CAP часто резюмируется как «выбери два из трех», но точный результат вынуждает выбирать между согласованностью и доступностью только во время раздела; критики утверждают, что это упрощение скрывает более актуальный повседневный компромисс между задержкой и согласованностью, охватываемый PACELC.

Key figures

  • Eric Brewer
  • Seth Gilbert
  • Nancy Lynch
  • Maurice Herlihy
  • Jeannette Wing
  • Leslie Lamport

Related topics

Seminal works

  • gilbert2002
  • herlihy1990
  • lamport1979

Frequently asked questions

Означает ли CAP, что система может иметь только два из трех свойств: согласованность, доступность и устойчивость к разделам?
Не совсем. Разделы — это факт сетей, а не выбор дизайна, поэтому реальное решение заключается в том, что делать во время раздела: пожертвовать строгой согласованностью, чтобы оставаться доступным, или пожертвовать доступностью, чтобы оставаться согласованным. Когда раздела нет, система может быть как согласованной, так и доступной.

Methods for this concept

Related concepts