Почему C в теореме CAP не совпадает с C в ACID?
Мой вопрос довольно прост, я искал более простой ответ, почему C в теореме CAP не совпадает с C в ACID?
Прочитайте эту тему HN.
Обновить
В справочнике автостопщика по NOSQL v1.0, слайд 71 говорится: C в CAP = A+C (атомарная согласованность)
2 ответа
Оба C означают согласованность, но понятие согласованности в CAP означает, что "все узлы видят одни и те же данные одновременно", а понятие согласованности в ACID означает, что "любая транзакция, которую выполняет база данных, переведет ее из одного согласованного состояния в другой". (Из Википедии.)
Вы не можете иметь значимую последовательность без атомарности. Вот почему теорема CAP определяет C таким же образом.
Представьте себе этот простой сценарий:
Есть база данных с двумя аккаунтами. В нашей базе данных нет денег. Просто деньги на двух счетах. В базе данных деньги перемещаются с одного счета на другой.
Без атомарности пользователь мог прочитать данные, когда деньги были вычтены с одного счета, а еще не были записаны на другой. В этом случае общая сумма этих двух учетных записей будет варьироваться от чтения к чтению, что должно быть невозможным, поскольку "новые" деньги не покидают базу данных и не входят в нее.
Говорить о согласованности любым другим способом - все равно, что думать о булевом Java как о "почти" истинном, в то время как остальная часть мира воспринимает его как ложное.