Twierdzenie CAP vs. BASE (NoSQL)

12

Twierdzenie CAP vs. BASE (NoSQL)

Cześć, próbuję napisać mały artykuł na temat mojej pracy na temat NoSQL i opisałem Twierdzenie CAP jako, jeśli nie wszystkie, wówczas większość baz danych NoSQL przestrzega. Później przeczytałem artykuł na temat różnicy między NoSQL a RDBMS, w którym stwierdzono, że bazy danych NoSQL używają odpowiednika ACID BASE.

Znam właściwości BASE, ACID i CAP, ale trudno mi ustalić, jaki związek mają między sobą twierdzenie CAP i BASE. Jak rozumiem, twierdzenie CAP prowadzi do akronimu BASE, ale czy jest to właściwy wniosek? Czy może są to dwa różne podejścia do „zbudowania” bazy danych, wokół której występują podobne właściwości?

W tym poście na blogu (http://www.johndcook.com/blog/2009/07/06/brewer-cap-theorem-base/) autor pisze:

Trudniej jest opracowywać oprogramowanie w świecie BASE odpornym na uszkodzenia w porównaniu do wybrednego świata ACID, ale twierdzenie Brewera o CAP mówi, że nie masz wyboru, jeśli chcesz zwiększyć skalę. Jednak, jak wskazuje Brewer w tej prezentacji, istnieje kontinuum między ACID a BASE. Możesz zdecydować, jak blisko chcesz być na jednym końcu kontinuum lub na drugim, zgodnie ze swoimi priorytetami.

W innym artykule autor pisze:

Wiele baz danych NOSQL przede wszystkim rozluźniło wymagania dotyczące spójności w celu uzyskania lepszej dostępności i podziału na partycje. Spowodowało to, że systemy znane są jako BASE (zasadniczo dostępny, stan miękki, ostatecznie spójny). Nie zawierają one transakcji w klasycznym znaczeniu i wprowadzają ograniczenia modelu danych, aby umożliwić lepsze schematy partycji (takie jak system Dynamo itp.). Bardziej kompleksowa dyskusja na temat CAP, ACID i BASE jest dostępna we wstępie.

To wyraźnie stwierdza, że ​​WPR powoduje BAZĘ.

Mam nadzieję, że ktoś mi to wyjaśni i usunie zamieszanie.

Dzięki
- Mestika

Mestika
źródło

Odpowiedzi:

15

CAP jest w zasadzie kontinuum, wzdłuż którego BASE i ACID znajdują się na przeciwnych końcach.

Schemat CAP

CAP to spójność, dostępność i tolerancja partycji. Zasadniczo możesz wybrać 2 z nich, ale nie możesz zrobić wszystkich 3.

ACID koncentruje się na spójności i dostępności.

BASE koncentruje się na tolerancji partycji i dostępności oraz wyrzuca spójność przez okno.

JNK
źródło
1
Dobra baza danych ACID powinna koncentrować się na spójności i tolerancji partycji, ponieważ wyrzucenie tolerancji partycji przez okno (mówiąc słowami) złamałoby spójność za każdym razem, gdy partycja się pojawi.
Peter
ACID nie koncentruje się na dostępności. „A” oznacza atomowość i obejmuje takie rzeczy, jak przerwanie - wycofanie - ponowne uruchomienie.
momo