Wyjaśnienie terminologii BASE

170

PODSTAWA Skrót jest używany do opisania pewnych właściwości baz danych, zwykle baz NoSQL. Często określa się go jako przeciwieństwo ACID .

Jest tylko kilka artykułów, które dotykają szczegółów BASE, podczas gdy ACID ma wiele artykułów, które omawiają każdą z właściwości atomowych, konsystencji, izolacji i trwałości. Wikipedia poświęca temu terminowi tylko kilka linijek .

Pozostaje mi kilka pytań dotyczących definicji :

B asically ono dostępne, S często stan, E ventual konsystencji

Zinterpretowałem te właściwości w następujący sposób, korzystając z tego artykułu i swojej wyobraźni:

Zasadniczo dostępne mogą odnosić się do postrzeganej dostępności danych. Jeśli pojedynczy węzeł ulegnie awarii, część danych nie będzie dostępna, ale cała warstwa danych będzie nadal działać.

  • Czy ta interpretacja jest poprawna, czy też odnosi się do czegoś innego?
  • Aktualizacja: wnioskując z odpowiedzi Mau , czy może to oznaczać, że cała warstwa danych zawsze przyjmuje nowe dane, tj. Nie ma scenariuszy blokowania, które uniemożliwiają natychmiastowe wstawienie danych?

Stan miękki : wszystko, co udało mi się znaleźć, to koncepcja danych wymagających odświeżenia okresu. Bez odświeżenia dane wygasną lub zostaną usunięte.

  • Automatyczne usuwanie danych w bazie danych wydaje mi się dziwne.
  • Wygasłe lub nieaktualne dane mają większy sens. Ale ta koncepcja miałaby zastosowanie do każdego rodzaju nadmiarowego przechowywania danych, nie tylko NoSQL. Czy w takim razie opisuje coś innego?

Ostateczna spójność oznacza, że ​​aktualizacje w końcu dotrą do wszystkich serwerów, jeśli dostaną wystarczająco dużo czasu.

  • Ta właściwość jest dla mnie jasna.

Czy ktoś może szczegółowo wyjaśnić te właściwości?

A może jest to tylko naciągany i pozbawiony znaczenia akronim, który odnosi się do pojęć kwasów i zasad występujących w chemii?

Niels van der Rest
źródło

Odpowiedzi:

194

Akronim BASE został zdefiniowany przez Erica Brewera , znanego również z formułowania twierdzenia CAP .

Twierdzenie CAP stwierdza, że ​​rozproszony system komputerowy nie może zagwarantować jednocześnie wszystkich trzech następujących właściwości:

  • Konsystencja
  • Dostępność
  • Tolerancja podziału

System BASE rezygnuje z spójności.

  • Zasadniczo dostępne wskazuje, że system robi dostępności gwarancji, jeśli chodzi o twierdzenia WPR.
  • Stan miękki wskazuje, że stan systemu może zmieniać się w czasie, nawet bez wprowadzania danych. Wynika to z ostatecznego modelu spójności.
  • Ostateczna spójność wskazuje, że system stanie się spójny w czasie, biorąc pod uwagę, że w tym czasie system nie otrzymuje danych wejściowych.

Brewer przyznaje, że akronim jest wymyślony :

Wymyśliłem akronim [BASE] z moimi studentami w ich biurze na początku tego roku. Zgadzam się, że to trochę wymyślone, ale tak samo jest z „ACID” - znacznie więcej niż ludzie zdają sobie sprawę, więc uznaliśmy, że jest wystarczająco dobry.

Niels van der Rest
źródło
33
Zasadniczo dostępność NIE gwarantuje dostępności. oznacza to, że jest w większości dostępny, ale serwery mogą przestać działać z różnych powodów.
DarthVader
@Neils, więc czy ACID rezygnuje z dostępności lub tolerancji na patacje?
Pacerier,
@Pacerier, tu właśnie twierdzenie CAP zaczyna pokazywać swoje wady :) Jeśli system gwarantuje tolerancję partycji, poświęca dostępność w przypadku partycji. Jeśli system gwarantuje dostępność, rezygnuje z tolerancji partycji, co oznacza, że ​​partycja spowoduje, że system będzie niedostępny (lub niespójny). Jak więc widać, „dostępność” i „tolerancja partycji” idą w parze. Więcej szczegółów na ten temat znajdziesz w tym artykule .
Niels van der Rest
1
Nienaukowo, ale z moich obserwacji, mówiąc o Web Services, ACID jest najczęściej kojarzony z SOAP, a BASE jest ściślej powiązany z usługami REST (RESTful). Aby uzyskać dokładniejszą dyskusję na temat ostatecznej spójności, zobacz debatę między zwolennikami MongoDB i CouchDB.
Charles Ross
„Twierdzenie” CAP zostało przeanalizowane matematycznie (ale bardzo czytelnie) i omówione w wyjątkowo inteligentny sposób przez Marka Burgessa , którego artykuł jest w trakcie czytania. (W pierwszej kolejności byłem tam powiązany z Wikipedią .)
Wildcard
45

Ma to związek z BASE : rodzaj skoczek BASE jest zawsze Zasadniczo Dostępny (do nowych relacji), w stanie miękkie (żaden z jego relacji ostatni bardzo długo) i ostatecznie spójne (jeden dzień on będzie ożenić).

Mau
źródło
Ok, więc mówisz, że bazy danych ACID są znacznie lepsze niż BASE?
Pacerier,
2
Au contraire, BASE jest zawsze przyjemniejsza.
Mau
8
Cóż, to właściwie mój chleb powszedni i jeśli chcesz poważnej odpowiedzi, KWAS.
Mau
1
@Pacerier Eric Brewer ukuł termin PODSTAWA, wskazuje, że podczas gdy banki i instytucje finansowe mówią o ograniczeniach KWASU , w rzeczywistości nie są one ściśle mówiąc ( highscalability.com/blog/2013/5/1/… )
i i
2
@Pacerier i Mau, a co z NewSQL? Czy wybrałbyś go zamiast NoSQL (BASE) i relacyjnego (ACID)?
Boris Mocialov
6
  • Podstawowa dostępność : baza danych wydaje się działać przez większość czasu.

  • Stan miękki : sklepy nie muszą przez cały czas być zgodne z zapisami ani wzajemnie spójne.

  • Ostateczna spójność : dane powinny być zawsze spójne, jeśli chodzi o sposób przeprowadzania dowolnej liczby zmian.

MANISH PRIYADARSHI
źródło
4

ACID i BASE to modele spójności odpowiednio dla RDBMS i NoSQL. Transakcje ACID są znacznie bardziej pesymistyczne, tj. Bardziej martwią się o bezpieczeństwo danych. W świecie baz danych NoSQL transakcje ACID są mniej modne, ponieważ niektóre bazy danych poluzowały wymagania dotyczące natychmiastowej spójności, świeżości i dokładności danych w celu uzyskania innych korzyści, takich jak skalowalność i odporność.

BASE oznacza -

  • Podstawowa dostępność - baza danych wydaje się działać przez większość czasu.
  • Stan miękki - sklepy nie muszą być zgodne z zapisem, ani różne repliki nie muszą być przez cały czas wzajemnie spójne.
  • Ostateczna spójność - Sklepy wykazują spójność w późniejszym czasie (np. Leniwie w czasie czytania).

Dlatego BASE rozluźnia spójność, aby umożliwić systemowi przetwarzanie żądań nawet w niespójnym stanie.

Przykład : nikt nie miałby nic przeciwko, gdyby jego tweet był przez krótki czas niespójny w sieci społecznościowej. Ważniejsza jest natychmiastowa odpowiedź niż spójny stan informacji o użytkownikach.

Pujan Srivastava
źródło
1
Ostateczna spójność faktycznie ma niepożądany wpływ. Czy kiedykolwiek doświadczyłeś spowolnienia czatu na LinkedIn? Odpowiadasz jednym zdaniem, a potem innym. Następnie z powodu Ostatecznej Spójności lub braku jej właściwej implementacji, w końcu dwie odpowiedzi są zamienione razem. Tak, ostatecznie otrzymałeś 2 odpowiedzi na czacie, ale nie są one w zamierzonej kolejności.
zmechanic
2

Aby dodać do innych odpowiedzi, myślę, że akronimy zostały wyprowadzone, aby pokazać skalę między tymi dwoma terminami, aby rozróżnić, jak wiarygodne transakcje lub żądania są między RDMS a Big Data.

Z tego artykułu kwas vs zasada

W chemii pH mierzy względną zasadowość i kwasowość roztworu wodnego (rozpuszczalnik w wodzie). Skala pH rozciąga się od 0 (substancje silnie kwaśne, np. Kwas akumulatorowy) do 14 (substancje silnie zasadowe, np. Kłamstwa); czysta woda o temperaturze 77 ° F (25 ° C) ma pH 7 i jest obojętna.

Inżynierowie danych sprytnie pożyczyli kwas kontra zasada od chemików i stworzyli akronimy, które choć nie są dokładne w swoim znaczeniu, nadal są trafnymi reprezentacjami tego, co dzieje się w danym systemie bazy danych podczas omawiania niezawodności przetwarzania transakcji.

Jeszcze jedna kwestia, ponieważ pracuję z Big Data za pomocą Elasticsearch. Aby wyjaśnić, instancja Elasticsearch to węzeł, a grupa węzłów tworzy klaster.

Z praktycznego punktu widzenia, dla mnie BA (Basically Available) w tym kontekście ma koncepcję wielu głównych węzłów do obsługi klastra Elasticsearch i jego operacji.

Jeśli masz 3 węzły główne, a aktualnie kierujący węzeł nadrzędny ulegnie awarii, system pozostanie włączony, chociaż w mniej wydajnym stanie, a inny węzeł nadrzędny zajmie jego miejsce jako główny węzeł nadrzędny kierujący. Jeśli dwa węzły główne ulegną awarii, system nadal działa, a ostatni węzeł główny przejmuje kontrolę.

Jamesa Drinkarda
źródło
0

Może to być spowodowane tym, że KWAS to jeden zestaw właściwości, które wykazują substancje (w chemii), a PODSTAWA jest ich uzupełnieniem, więc może po prostu pokazać kontrast między nimi, że akronim został utworzony, a następnie `` Zasadniczo dostępne '' Soft State Final Consistency ”została podjęta w pełnej formie.

siebenheaven
źródło
2
To może wyjaśniać, w jaki sposób powstał akronim, ale nie wyjaśnia, co oznaczają różne właściwości .
Jmb
Użycie słów takich jak `` Zasadniczo '', które nie są nawet znaczące pod względem znaczenia, które wnoszą, sugeruje, że akronim został wybrany jako pierwszy (KWAS vs PODSTAWA), a następnie stwierdzono, że słowa wypełniają części akronimu . Prawdopodobnie dlatego nie znajdujemy tylu wyjaśnień i odniesień (w porównaniu do słów z ACID, których wyjaśnienie można znaleźć na każdej stronie, która mówi o RDBMS) do tego, co te słowa znaczą.
siebenheaven
Uważam to za interesujące, ponieważ „Zasadniczo dostępne” wydaje się tak wymuszone.
Ricardo Pedroni