Почему C в теореме CAP не совпадает с C в ACID?

Мой вопрос довольно прост, я искал более простой ответ, почему C в теореме CAP не совпадает с C в ACID?

Прочитайте эту тему HN.

Обновить

В справочнике автостопщика по NOSQL v1.0, слайд 71 говорится: C в CAP = A+C (атомарная согласованность)

2 ответа

Решение

Оба C означают согласованность, но понятие согласованности в CAP означает, что "все узлы видят одни и те же данные одновременно", а понятие согласованности в ACID означает, что "любая транзакция, которую выполняет база данных, переведет ее из одного согласованного состояния в другой". (Из Википедии.)

Вы не можете иметь значимую последовательность без атомарности. Вот почему теорема CAP определяет C таким же образом.

Представьте себе этот простой сценарий:

Есть база данных с двумя аккаунтами. В нашей базе данных нет денег. Просто деньги на двух счетах. В базе данных деньги перемещаются с одного счета на другой.

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

Говорить о согласованности любым другим способом - все равно, что думать о булевом Java как о "почти" истинном, в то время как остальная часть мира воспринимает его как ложное.

Другие вопросы по тегам