Теорема CAP против BASE (NoSQL)

12

Теорема CAP против BASE (NoSQL)

Привет, я пытаюсь написать небольшую статью для моей работы о NoSQL и описал теорему CAP как, если не все, то большинство баз данных NoSQL придерживается. Позже я прочитал статью о разнице между NoSQL и RDBMS, в которой говорится, что базы данных NoSQL используют аналог ACID BASE.

Я знаю свойства BASE, ACID и CAP, но мне трудно понять, как соотносятся теорема CAP и BASE друг с другом. Насколько я понимаю, теорема CAP приводит к сокращению BASE, но правильный ли это вывод? Или это два разных подхода к «построению» базы данных, которые имеют общие свойства ??

В этом посте (http://www.johndcook.com/blog/2009/07/06/brewer-cap-theorem-base/) автор пишет:

Труднее разрабатывать программное обеспечение в отказоустойчивом мире BASE по сравнению с привередливым миром ACID, но теорема Brewer CAP говорит, что у вас нет выбора, если вы хотите увеличить масштаб. Однако, как указывает Брюер в этой презентации, между ACID и BASE существует континуум. Вы можете решить, насколько близко вы хотите быть к одному концу континуума или другому в соответствии с вашими приоритетами.

В другой статье автор пишет:

Многие из баз данных NOSQL, прежде всего, ослабили требования к согласованности для достижения лучшей доступности и разбиения на разделы. Это привело к тому, что системы известны как BASE (в основном доступны, мягкие состояния, в конечном итоге согласованные). Они не имеют транзакций в классическом смысле и вводят ограничения на модель данных, чтобы обеспечить лучшие схемы разбиения (такие как система Динамо и т. Д.). Более подробное обсуждение CAP, ACID и BASE доступно в этом введении.

Это ясно говорит о том, что CAP приводит к BASE.

Я надеюсь, что кто-то может разъяснить мне это и устранить мою путаницу ..

Спасибо
- местика

Mestika
источник

Ответы:

15

CAP - это, по сути, континуум, по которому BASE и ACID находятся на противоположных концах.

CAP Diagram

CAP - это согласованность, доступность и допуск раздела. В основном вы можете выбрать 2 из них, но вы не можете сделать все 3.

ACID фокусируется на согласованности и доступности.

BASE фокусируется на допуске и доступности разделов и выдает последовательность в окно.

JNK
источник
1
Хорошая база данных ACID должна фокусироваться на согласованности и допуске на разделы, потому что выбрасывание допусков на разделы в окно (чтобы выразить это словами) нарушит согласованность при возникновении раздела.
Питер
ACID не фокусируется на доступности. «А» означает атомарность и охватывает такие вещи, как прерывание - откат - перезапуск.
момо