Grafdatabaser för nybörjare: ACID vs. BASE Explained

när det gäller NoSQL-databaser kan datakonsistensmodeller ibland vara påfallande annorlunda än de som används av relationsdatabaser (liksom helt annorlunda än andra NoSQL-butiker).
de två vanligaste konsistensmodellerna är kända av akronymerna syra och bas. Medan de ofta ställs mot varandra i en kamp för ultimat seger (snälla någon gör en video av det), kommer båda konsistensmodellerna med fördelar och nackdelar – och det är inte alltid en perfekt passform.
Låt oss ta en närmare titt på avvägningarna för båda databasens konsistensmodeller.

lär dig skillnaderna mellan syra-och basdatakonsistensmodellerna och deras avvägningar

i denna grafdatabaser för nybörjare bloggserie tar jag dig igenom grunderna i grafteknik förutsatt att du har liten (eller ingen) bakgrund i utrymmet. Under de senaste veckorna har vi tagit itu med varför grafteknik är framtiden, varför anslutna data är viktiga, grunderna (och fallgroparna) för datamodellering, varför ett databasfrågespråk är viktigt, skillnaderna mellan imperativa och deklarativa frågespråk, prediktiv modellering med grafteori, grunderna i grafsökningsalgoritmer och varför vi behöver NoSQL-databaser.
Den här veckan tar vi en närmare titt på de viktigaste skillnaderna mellan Acid och BASE database consistency modeller och vad deras avvägningar betyder för dina datatransaktioner.

ACID Consistency Model

många utvecklare är bekanta med ACID-transaktioner från att arbeta med relationsdatabaser. Som sådan har syrakonsistensmodellen varit normen under en tid.
nyckeln syra garanti är att det ger en säker miljö att fungera på dina data. ACID acronym står för:
Atomic

    • alla operationer i en transaktion lyckas eller varje operation rullas tillbaka.

konsekvent

    • vid slutförandet av en transaktion är databasen strukturellt sund.

isolerade

    • transaktioner strider inte mot varandra. Omstridd tillgång till data modereras av databasen så att transaktioner verkar köras sekventiellt.

Durable

    • resultaten av att tillämpa en transaktion är permanenta, även i närvaro av fel.

syraegenskaper betyder att när en transaktion är klar är dess data konsekvent (tech lingo: skriv konsistens) och stabil på disken, vilket kan innebära flera olika minnesplatser.skriv konsistens är en underbar sak för applikationsutvecklare, men det kräver också sofistikerad låsning som vanligtvis är ett tungviktsmönster för de flesta användningsfall.när det gäller NoSQL-teknik använder de flesta grafdatabaser(inklusive Neo4j) en syrakonsistensmodell för att säkerställa att data är säkra och konsekvent lagrade.

BASKONSISTENSMODELLEN

för många domäner och användningsfall är ACID-transaktioner mycket mer pessimistiska (dvs. de är mer oroliga för datasäkerhet) än domänen faktiskt kräver.i NoSQL-databasvärlden är ACID-transaktioner mindre moderna eftersom vissa databaser har lossat kraven på omedelbar konsistens, datafärskhet och noggrannhet för att få andra fördelar, som skala och motståndskraft.

(särskilt, Net-baserade RavenDB har bucked trenden bland aggregerade butiker för att stödja ACID transaktioner.)
här är hur basen akronym bryter ner:
grundläggande tillgänglighet

    • databasen verkar fungera för det mesta.

Soft-state

    • butiker behöver inte vara skrivkonsistenta, och inte heller måste olika repliker vara ömsesidigt konsekventa hela tiden.

eventuell konsistens

    • butiker uppvisar konsistens vid något senare tillfälle (t.ex.

basegenskaper är mycket lösare än SYRAGARANTIER, men det finns inte en direkt en-för-en-kartläggning mellan de två konsistensmodellerna (en punkt som förmodligen inte kan överdrivas).
ett BASDATALAGER värderar tillgänglighet (eftersom det är viktigt för skalan), men det erbjuder inte garanterad konsistens av replikerade data vid skrivtid. Sammantaget ger BASKONSISTENSMODELLEN en mindre strikt försäkran än ACID: data kommer att vara konsekventa i framtiden, antingen vid läsningstid (t.ex. Riak) eller det kommer alltid att vara konsekvent, men endast för vissa bearbetade tidigare ögonblicksbilder (t. ex. Datomic).
BASKONSISTENSMODELLEN används främst av aggregerade butiker, inklusive kolumnfamilj, nyckelvärde och dokumentbutiker.

navigera syra vs. BASE avvägningar

det finns inget rätt svar på om din ansökan behöver en syra kontra bas konsistens modell. Utvecklare och dataarkitekter bör välja sina datakonsistensavvägningar från fall till fall – inte bara baserat på vad som trender eller vilken modell som användes tidigare.med tanke på basens lösa konsistens måste utvecklare vara mer kunniga och rigorösa om konsekventa data om de väljer en BASBUTIK för sin applikation. Det är viktigt att vara bekant med BASBETEENDET för din valda aggregatbutik och arbeta inom dessa begränsningar.å andra sidan kan planering kring BASBEGRÄNSNINGAR ibland vara en stor nackdel jämfört med enkelheten i SYRATRANSAKTIONER. En helt syra databas är den perfekta passformen för användningsfall där data tillförlitlighet och konsekvens är väsentliga (Bank, någon?).
under de kommande veckorna kommer vi att dyka in mer syra/bas detaljerna när det gäller att aggregera butiker och andra graf teknik.

gå bortom grunderna:
hämta ditt exemplar av O ’ Reilly Graph Databases book och börja använda graph technology för att lösa verkliga problem.
Hämta boken

hämta resten av Grafdatabaserna för nybörjare serie:

    • Varför Grafteknik är framtiden
    • Varför anslutna datafrågor
    • grunderna i datamodellering
    • Datamodelleringsgropar för att undvika
    • Varför en databasfråga språkfrågor (mer än du tror)
    • imperativ vs deklarativ fråga språk: Vad är skillnaden?
    • grafteori & prediktiv modellering
    • Grafsökningsalgoritm grunderna
    • Varför behöver vi NoSQL-databaser
    • en rundtur i aggregerade butiker
    • andra Grafdatateknologier
    • Native vs Non-Native Graph Technology



Lämna ett svar

Din e-postadress kommer inte publiceras.