Spójność w twierdzeniu ACID i CAP, czy są one takie same?

18

Z mojego zrozumienia, spójność w ACID zapewnia integralność danych.

Jednak spójność w CAP oznacza, że ​​dane mogą szybko pojawiać się w systemie rozproszonym.

Czy to oznacza: nie są to ta sama koncepcja?

Yang Xia
źródło

Odpowiedzi:

18

Nie są tak naprawdę takie same ze względu na zakres danych

KWAS

CZAPKA

  • Spójność (wszystkie węzły mają te same dane dzięki ewentualnej spójności)
  • Dostępność
  • Tolerancja partycji: system nadal działa pomimo arbitralnej utraty wiadomości lub awarii części systemu

STRESZCZENIE

  • ACID odnosi się do spójności danych poszczególnych węzłów
  • CAP rozwiązuje problem spójności danych w całym klastrze
RolandoMySQLDBA
źródło
1
Ewentualny. W końcu powinno być odważne, Rolando. To przełomowy moment :) Szczęśliwego Nowego Roku!
Philᵀᴹ
3

Twierdzenie CAP : określa, że ​​system rozproszony może zapewniać dwie usługi (np. Dostępność i tolerancję podziału), ale nigdy trzy. Jeśli na przykład usługa zapewnia dostępność i partycjonowanie, nigdy nie może zapewnić spójności, nie od razu, dlatego używana jest ostateczna spójność, która umożliwia przepływ infrastruktury między niespójnością a spójnością, jednak w pewnym momencie, wcześniej czy później, infrastruktura stanie się spójna , co skutkuje ostateczną spójnością. Usługi w chmurze działają w taki sposób, a Amazon Simple DB korzysta z ostatecznej spójności.

Funkcje ACID są zwykle stosowane do relacyjnych baz danych. Jeśli chcesz zastosować ACID w sposób rozproszony (rozproszona baza danych), ACID używa 2PC (zatwierdzanie dwufazowe) w celu wymuszenia spójności między partycjami. Ponieważ jednak ACID zapewnia spójność i partycjonowanie, zastosowanie twierdzenia CAP dla (środowisk rozproszonych) oznacza, że ​​dostępność jest zagrożona.

Z tego powodu stosowana jest PODSTAWA (Zasadniczo dostępna, stan miękki, ostatecznie spójny), który może zapewnić poziomy skalowalności, których nie można uzyskać za pomocą ACID.

Mam nadzieję że to pomoże.

Stefan M.
źródło
-1

Co do spójności w twierdzeniu CAP, Julian Brown pisze w swoim artykule ( http://www.julianbrowne.com/article/brewers-cap-theorem ):

Usługa, która jest spójna, działa całkowicie lub wcale. Gilbert i Lynch używają słowa „atomowy” zamiast spójnego w swoim dowodzie, co ma sens z technicznego punktu widzenia, ponieważ, ściśle mówiąc, spójne jest C w ACID w odniesieniu do idealnych właściwości transakcji w bazie danych i oznacza, że ​​dane nigdy nie zostaną utrwalone, że łamie pewne wstępnie ustawione ograniczenia. Ale jeśli weźmiesz pod uwagę ustalone ograniczenie systemów rozproszonych, że wiele wartości dla tego samego kawałka danych jest niedozwolone, to myślę, że przeciek w abstrakcji jest zatkany (a ponadto, gdyby Brewer użył słowa atomowy, nazwałby to AAP twierdzenie i wszyscy będziemy w szpitalu za każdym razem, gdy będziemy próbować je wymówić).

Zatem C w CAP odpowiada A w ACID.

Z Gilbertem i Lynchem nawiązuje do artykułu „Seth Gilbert i Nancy Lynch: hipoteza Brewera i wykonalność spójnych, dostępnych, odpornych na partycje usług internetowych”

biały gekon
źródło
1
Spójność CAP dotyczy systemu rozproszonego, podczas gdy ACID wyodrębnia się z tego poziomu architektury systemu. Spójność WPR może być konieczna do wdrożenia atomowości ACID, ale to nie to samo.
mustaccio
Ponieważ sam Brewer sam stawia swoje twierdzenie CAP w odniesieniu do ACID ( people.eecs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf Page 2 i 3) Myślę, że w pełni uzasadnione jest głębsze zbadanie korelacji między obie.
white_gecko