Graph Databases dla początkujących: Acid vs.BASE Explained

jeśli chodzi o bazy danych NoSQL, modele spójności danych mogą czasami być uderzająco różne niż te używane przez relacyjne bazy danych (a także zupełnie inne od innych sklepów NoSQL).
dwa najczęściej spotykane modele konsystencji znane są pod akronimami kwas i zasada . Podczas gdy często są one walczone przeciwko sobie w walce o ostateczne zwycięstwo (Proszę, Niech ktoś zrobi film z tego), oba modele spójności mają zalety – i wady – i nie zawsze jest idealne dopasowanie.
przyjrzyjmy się bliżej kompromisom obu modeli spójności baz danych.

poznaj różnice między kwasowymi i zasadowymi modelami spójności danych oraz ich kompromisy

w tej serii blogów graph Databases for Beginners omówię podstawy technologii grafów, zakładając, że masz niewiele (lub nie) tła w przestrzeni. W ostatnich tygodniach omówiliśmy, dlaczego technologia grafów jest przyszłością, dlaczego połączone dane mają znaczenie, podstawy (i pułapki) modelowania danych, dlaczego język zapytań bazodanowych ma znaczenie, różnice między językami zapytań imperatywnych i deklaratywnych, modelowanie predykcyjne z wykorzystaniem teorii grafów, podstawy algorytmów wyszukiwania grafów i dlaczego potrzebujemy baz danych NoSQL.
w tym tygodniu przyjrzymy się bliżej kluczowym różnicom między kwasowymi i zasadowymi modelami spójności baz danych oraz tym, co oznaczają ich kompromisy dla transakcji danych.

model spójności ACID

wielu programistów zna transakcje ACID z pracy z relacyjnymi bazami danych. W związku z tym model kwasowej konsystencji jest normą od pewnego czasu.
kluczową gwarancją kwasu jest to, że zapewnia bezpieczne środowisko, w którym można operować na danych. Akronim ACID oznacza:
Atomic

    • wszystkie operacje w transakcji kończą się sukcesem lub każda operacja zostaje wycofana.

spójny

    • po zakończeniu transakcji baza danych jest stabilna strukturalnie.

izolowane

    • transakcje nie kłócą się ze sobą. Dostęp do danych jest moderowany przez bazę danych, dzięki czemu transakcje wydają się przebiegać sekwencyjnie.

trwałe

    • Wyniki transakcji są trwałe, nawet w przypadku awarii.

właściwości kwasu oznaczają, że po zakończeniu transakcji jej dane są spójne (słownictwo techniczne: spójność zapisu) i stabilne na dysku, co może obejmować wiele różnych lokalizacji pamięci.
spójność zapisu jest wspaniałą rzeczą dla programistów aplikacji, ale wymaga również wyrafinowanego blokowania, co jest zazwyczaj ciężkim wzorcem w większości przypadków użycia.
jeśli chodzi o technologie NoSQL, większość baz danych grafów(w tym Neo4j) wykorzystuje model spójności kwasowej, aby zapewnić bezpieczeństwo i spójność danych.

model spójności bazy

dla wielu domen i przypadków użycia transakcje ACID są znacznie bardziej pesymistyczne (tj. bardziej martwią się o bezpieczeństwo danych) niż domena faktycznie wymaga.
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, aby uzyskać inne korzyści, takie jak skala i odporność.
(szczególnie, ravendb oparty na. Net wyprzedził trend wśród sklepów z agregatami we wspieraniu transakcji ACID.)
oto jak działa podstawowy akronim:
dostępność Podstawowa

    • baza danych wydaje się działać przez większość czasu.

Soft-state

    • sklepy nie muszą być zgodne z zapisem, ani różne repliki muszą być wzajemnie spójne przez cały czas.

konsystencja

    • sklepy wykazują konsystencję w pewnym późniejszym momencie (np. leniwie w czasie odczytu).

właściwości bazy są znacznie luźniejsze niż Gwarancje kwasowe, ale nie ma bezpośredniego mapowania jeden do jednego między dwoma modelami konsystencji (punkt, który prawdopodobnie nie może być zawyżony).
baza danych przechowuje wartości dostępności (ponieważ jest to ważne dla skali), ale nie zapewnia gwarantowanej spójności replikowanych danych w czasie zapisu. Ogólnie rzecz biorąc, model spójności bazowej zapewnia mniej ścisłą pewność niż kwas: dane będą spójne w przyszłości, albo w czasie odczytu (np. Riak), albo zawsze będą spójne, ale tylko dla niektórych przetworzonych migawek z przeszłości(np. Datomic).
MODEL spójności bazowej jest używany głównie przez magazyny agregatów, w tym rodziny kolumn, magazynów klucz-wartość i dokumentów.

Nawigacja kwas vs. Kompromisy zasad

nie ma właściwej odpowiedzi na to, czy Twoja aplikacja potrzebuje modelu konsystencji kwasowo-zasadowej. Programiści i architekci danych powinni indywidualnie dobierać kompromisy dotyczące spójności danych, a nie tylko na podstawie trendów lub modelu, który był wcześniej używany.
biorąc pod uwagę luźną spójność bazy, programiści muszą być bardziej kompetentni i rygorystyczni w zakresie spójnych danych, jeśli wybierają sklep bazowy dla swojej aplikacji. Ważne jest, aby zapoznać się z podstawowym zachowaniem wybranego magazynu zbiorczego i pracować w ramach tych ograniczeń.
z drugiej strony, planowanie wokół ograniczeń bazy może być czasami poważną wadą w porównaniu z prostotą transakcji ACID. W pełni kwasowa baza danych idealnie nadaje się do zastosowań, w których niezawodność i spójność danych są niezbędne (Bankowość, ktokolwiek?).
w najbliższych tygodniach przyjrzymy się większej ilości specyfików kwasowo-zasadowych, jeśli chodzi o magazyny kruszyw i inne technologie grafowe.

Wyjdź poza podstawy:
Pobierz kopię książki O ’ Reilly Graph Databases i zacznij używać technologii graph do rozwiązywania rzeczywistych problemów.
Pobierz książkę

zapoznaj się z resztą serii Graph Databases for Beginners:

    • dlaczego technologia grafów jest przyszłością
    • dlaczego połączone dane mają znaczenie
    • podstawy modelowania danych
    • pułapki modelowania danych, aby uniknąć
    • dlaczego język zapytań do bazy danych ma znaczenie (więcej niż myślisz)
    • imperatyw a deklaratywne języki zapytań: jaka jest różnica?
    • teoria grafów& Modelowanie predykcyjne
    • podstawy algorytmów wyszukiwania grafów
    • Dlaczego potrzebujemy baz danych NoSQL
    • wycieczka po sklepach zbiorczych
    • Inne Technologie danych grafów
    • natywna vs. Nie natywna Technologia grafów



Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.