Baze de date grafice pentru începători: ACID vs. bază explicat

când vine vorba de bazele de date NoSQL, modelele de consistență a datelor pot fi uneori izbitor de diferite de cele utilizate de bazele de date relaționale (precum și destul de diferite de alte magazine NoSQL).
cele mai comune două modele de consistență sunt cunoscute prin acronimele ACID și BASE. În timp ce sunt adesea puși unul împotriva celuilalt într – o luptă pentru victoria finală (vă rugăm să faceți un videoclip despre asta), ambele modele de consistență vin cu avantaje – și dezavantaje-și niciunul nu se potrivește întotdeauna perfect.
să aruncăm o privire mai atentă la compromisurile ambelor modele de consistență a bazei de date.

aflați diferențele dintre modelele de consistență a datelor acide și bazice și compromisurile lor

În acest grafic baze de date pentru începători blog serie, vă voi lua prin elementele de bază ale tehnologiei grafic presupunând că aveți puțin (sau nu) fundal în spațiul. În ultimele săptămâni, am abordat de ce tehnologia graficelor este viitorul, de ce contează datele conectate, elementele de bază (și capcanele) modelării datelor, de ce contează un limbaj de interogare a bazei de date, diferențele dintre limbajele de interogare imperative și declarative, modelarea predictivă folosind teoria grafurilor, elementele de bază ale algoritmilor de căutare a grafurilor și de ce avem nevoie de baze de date NoSQL.în această săptămână, vom analiza mai atent diferențele cheie dintre modelele de consistență a bazei de date acide și bazice și ce înseamnă compromisurile lor pentru tranzacțiile dvs. de date.

Modelul consistenței acide

mulți dezvoltatori sunt familiarizați cu tranzacțiile acide de la lucrul cu baze de date relaționale. Ca atare, modelul de consistență acidă a fost norma de ceva timp.garanția cheie de ACID este că acesta oferă un mediu sigur în care să opereze pe datele dumneavoastră. Acronimul ACID înseamnă:
Atomic

    • toate operațiunile dintr-o tranzacție reușesc sau fiecare operațiune este retrasă.

consistente

    • la finalizarea unei tranzacții, baza de date este structural sunet.

izolate

    • tranzacțiile nu se luptă între ele. Accesul contencios la date este moderat de baza de date, astfel încât tranzacțiile par să ruleze secvențial.

durabil

    • rezultatele aplicării unei tranzacții sunt permanente, chiar și în prezența eșecurilor.

proprietățile acide înseamnă că, odată ce o tranzacție este completă, datele sale sunt consistente (Tech jargon: consistență de scriere) și stabile pe disc, ceea ce poate implica mai multe locații de memorie distincte.consistența de scriere este un lucru minunat pentru dezvoltatorii de aplicații, dar necesită și blocare sofisticată, care este de obicei un model greu pentru majoritatea cazurilor de utilizare.când vine vorba de tehnologiile NoSQL, majoritatea bazelor de date grafice (inclusiv Neo4j) utilizează un model de consistență acidă pentru a se asigura că datele sunt stocate în siguranță și în mod constant.

Modelul consistenței de bază

pentru multe domenii și cazuri de utilizare, tranzacțiile acide sunt mult mai pesimiste (adică sunt mai îngrijorate de siguranța datelor) decât necesită de fapt domeniul.în lumea bazelor de date NoSQL, tranzacțiile acide sunt mai puțin la modă, deoarece unele baze de date au slăbit cerințele pentru coerența imediată, prospețimea și acuratețea datelor pentru a obține alte beneficii, cum ar fi amploarea și rezistența.
(în special, RAVENDB bazat pe.net a depășit tendința în rândul magazinelor agregate în sprijinirea tranzacțiilor acide.)
Iată cum se descompune acronimul de bază:
disponibilitate de bază

    • baza de date pare să funcționeze de cele mai multe ori.

Soft-state

    • magazinele nu trebuie să fie consistente la scriere și nici replicile diferite nu trebuie să fie consecvente reciproc tot timpul.

eventuala consistență

    • magazinele prezintă consistență la un moment ulterior (de exemplu, leneș la ora citirii).

proprietățile bazei sunt mult mai slabe decât garanțiile acide, dar nu există o mapare directă unu-la-unu între cele două modele de consistență (un punct care probabil nu poate fi supraevaluat).
un stoc de date de bază valori disponibilitate (deoarece este important pentru scară), dar nu oferă coerența garantată a datelor reproduse la momentul scrierii. În general, modelul de consistență de bază oferă o asigurare mai puțin strictă decât acidul: datele vor fi consecvente în viitor, fie la momentul citirii (de exemplu, Riak), fie vor fi întotdeauna consecvente, dar numai pentru anumite instantanee procesate din trecut (de exemplu, Datomic).
modelul de consistență de bază este utilizat în principal de magazinele agregate, inclusiv familia de coloane, valoarea cheii și magazinele de documente.

navigarea ACID vs. Compromisuri de bază

Nu există un răspuns corect dacă aplicația dvs. are nevoie de un model de consistență ACID versus bază. Dezvoltatorii și arhitecții de date ar trebui să își selecteze compromisurile de consistență a datelor de la caz la caz-nu se bazează doar pe ceea ce este trending sau ce model a fost folosit anterior.având în vedere consistența liberă a bazei, dezvoltatorii trebuie să fie mai informați și mai riguroși cu privire la datele consistente dacă aleg un magazin de bază pentru aplicația lor. Este esențial să fiți familiarizați cu comportamentul de bază al magazinului dvs. agregat ales și să lucrați în cadrul acestor constrângeri.pe de altă parte, planificarea în jurul limitărilor de bază poate fi uneori un dezavantaj major în comparație cu simplitatea tranzacțiilor acide. O bază de date complet acidă este potrivită perfect pentru cazurile de utilizare în care fiabilitatea și coerența datelor sunt esențiale (bancar, oricine?).
în următoarele săptămâni ne vom arunca cu capul în mai multe specificul ACID/bază atunci când vine vorba de magazine agregate și alte tehnologii grafic.

treceți dincolo de elementele de bază:
obțineți copia cărții de baze de date O ‘ Reilly Graph și începeți să utilizați tehnologia graph pentru a rezolva problemele din lumea reală.
Ia cartea

Prinde din urmă cu restul bazelor de date grafic pentru începători serie:

    • De ce tehnologia grafic este viitorul
    • De ce datele conectate contează
    • elementele de bază ale modelării datelor
    • capcanele de modelare a datelor pentru a evita
    • De ce un limbaj de interogare a bazei de date contează (mai mult decât crezi)
    • imperativ vs. limbi de interogare Declarative: care este diferența?
    • Teoria grafurilor & modelare predictivă
    • elementele de bază ale algoritmului de căutare a grafurilor
    • De ce avem nevoie de baze de date NoSQL
    • un tur al magazinelor agregate
    • alte tehnologii de date grafice
    • tehnologie grafică nativă vs. non-nativă



Lasă un răspuns

Adresa ta de email nu va fi publicată.