Согласованность в теореме ACID и CAP, они одинаковы?

18

Насколько я понимаю, последовательность в ACID обеспечивает целостность данных.

Однако согласованность в CAP означает, что данные могут быстро появляться в распределенной системе.

Означает ли это: они не одно и то же понятие?

Ян Ся
источник

Ответы:

18

Они на самом деле не одинаковы из-за объема данных

ACID

КЕПКА

  • Согласованность (все узлы имеют одинаковые данные благодаря возможной согласованности)
  • Доступность
  • Partition-Tolerance: система продолжает работать, несмотря на произвольную потерю сообщения или отказ части системы

СИНТАКСИС

  • ACID обращается к согласованности данных отдельного узла
  • CAP обеспечивает согласованность данных на уровне кластера
RolandoMySQLDBA
источник
1
Eventual. В конце концов, Роландо, должно быть, выделено жирным Это сделка-нарушитель :) С Новым годом!
Philᵀᴹ
3

Теорема CAP : указывает, что распределенная система может предоставлять две службы (например, доступность и допуск раздела), но не три. Например, если служба обеспечивает доступность и разделение, она никогда не сможет обеспечить согласованность, а не сразу, таким образом, используется конечная согласованность, которая позволяет инфраструктуре переключаться между несогласованностью и согласованностью, однако в один прекрасный момент рано или поздно инфраструктура станет согласованной. , что приводит к возможной последовательности. Облачные сервисы работают таким образом, а Amazon Simple DB использует конечную согласованность.

Функции ACID обычно применяются к реляционным БД. Если вы хотите применить ACID распределенным способом (распределенная БД), ACID использует 2PC (двухфазное принятие) для обеспечения согласованности между разделами. Однако, поскольку ACID обеспечивает согласованность и разделение, применение теоремы CAP для (распределенных сред) означает, что доступность будет нарушена.

Из-за этого используется BASE (в основном доступное, мягкое состояние, в конечном итоге непротиворечивое), которое может обеспечить уровни масштабируемости, которые невозможно получить с помощью ACID.

Надеюсь это поможет.

Стефан М
источник
-1

Относительно последовательности в теореме CAP Джулиан Браун пишет в своей статье ( http://www.julianbrowne.com/article/brewers-cap-theorem ):

Служба, которая является последовательной, работает полностью или не работает вообще. Гилберт и Линч используют слово «атомарный» вместо последовательного в своем доказательстве, что технически более логично, поскольку, строго говоря, согласованным является C в ACID применительно к идеальным свойствам транзакций базы данных и означает, что данные никогда не будут сохраняться, что нарушает определенные предварительно установленные ограничения. Но если вы считаете заданным ограничением распределенных систем, что множественные значения для одного и того же фрагмента данных недопустимы, то я думаю, что утечка в абстракции устранена (плюс, если бы Брюер использовал слово атомарный, его бы назвали AAP). теорема, и мы все будем в больнице каждый раз, когда мы пытаемся произнести это).

Таким образом, C в CAP будет соответствовать A в ACID.

Вместе с Гилбертом и Линчем он ссылается на статью «Сет Гилберт и Нэнси Линч: гипотеза Брюера и возможность создания согласованных, доступных, допускающих разбиение веб-служб»

white_gecko
источник
1
Согласованность CAP применяется к распределенной системе, тогда как ACID абстрагируется от этого уровня архитектуры системы. Для реализации атомарности ACID может потребоваться согласованность CAP, но это не одно и то же.
Мустаччо
Поскольку сам Брюэр ставит свою теорему CAP в отношении ACID ( people.eecs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf Page 2 & 3), я думаю, что вполне уместно заглянуть глубже в соотношение между и то и другое.
white_gecko