Grafdatabaser til begyndere: ACID vs BASE forklaret
når det kommer til Noskl-databaser, kan datakonsistensmodeller undertiden være påfaldende forskellige end dem, der bruges af relationsdatabaser (såvel som helt forskellige fra andre Noskl-butikker).
de to mest almindelige konsistensmodeller er kendt under akronymerne syre og BASE. Mens de ofte er sat mod hinanden i en kamp for ultimativ sejr (vær venlig at lave en video af det), kommer begge konsistensmodeller med fordele – og ulemper – og ingen af dem er altid en perfekt pasform.
Lad os se nærmere på afvejningerne af begge databasekonsistensmodeller.
i denne grafdatabaser til begyndere blogserier tager jeg dig gennem det grundlæggende i grafteknologi, forudsat at du har lidt (eller ingen) baggrund i rummet. I de sidste uger har vi tacklet, hvorfor grafteknologi er fremtiden, hvorfor tilsluttede data betyder noget, det grundlæggende (og faldgruberne) i datamodellering, hvorfor et databaseforespørgselssprog betyder noget, forskellene mellem imperative og deklarative forespørgselssprog, forudsigelig modellering ved hjælp af grafteori, det grundlæggende i grafsøgningsalgoritmer, og hvorfor vi har brug for noskl-databaser.
i denne uge vil vi se nærmere på de vigtigste forskelle mellem syre-og BASEDATABASEKONSISTENSMODELLER og hvad deres afvejninger betyder for dine datatransaktioner.
SYREKONSISTENSMODELLEN
mange udviklere er bekendt med SYRETRANSAKTIONER fra at arbejde med relationelle databaser. Som sådan har SYREKONSISTENSMODELLEN været normen i nogen tid.nøglen syre garanti er, at det giver et sikkert miljø til at operere på dine data. ACIDAKRONYMET står for:
Atomic
- alle operationer i en transaktion lykkes, eller hver operation rulles tilbage.
konsekvent
- ved afslutningen af en transaktion er databasen strukturelt sund.
isoleret
- transaktioner kæmper ikke med hinanden. Omstridt adgang til data modereres af databasen, så transaktioner ser ud til at køre sekventielt.
holdbar
- resultaterne af anvendelse af en transaktion er permanente, selv i tilfælde af fejl.
syreegenskaber betyder, at når en transaktion er afsluttet, er dens data konsistente (tech lingo: skrivekonsistens) og stabile på disken, hvilket kan involvere flere forskellige hukommelsessteder.
Skrivekonsistens er en vidunderlig ting for applikationsudviklere, men det kræver også sofistikeret låsning, som typisk er et tungvægtsmønster for de fleste brugssager.
når det kommer til Noskl-teknologier, bruger de fleste grafdatabaser(herunder Neo4j) en SYREKONSISTENSMODEL for at sikre, at data er sikre og konsekvent gemt.
BASISKONSISTENSMODELLEN
for mange domæner og brugssager er SYRETRANSAKTIONER langt mere pessimistiske (dvs.de er mere bekymrede for datasikkerhed) end domænet faktisk kræver.i databaseverdenen er SYRETRANSAKTIONER mindre moderigtige, da nogle databaser har løsnet kravene til øjeblikkelig konsistens, datafriskhed og nøjagtighed for at opnå andre fordele, som skala og modstandsdygtighed.
(især den. Net-baserede RavenDB har bucked tendensen blandt aggregerede butikker til støtte for SYRETRANSAKTIONER.)
Sådan bryder BASISAKRONYMET ned:
grundlæggende tilgængelighed
- databasen ser ud til at fungere det meste af tiden.
Soft-state
- butikker behøver ikke at være skrivekonsistente, og forskellige replikaer skal heller ikke være gensidigt konsistente hele tiden.
eventuel konsistens
- butikker udviser konsistens på et senere tidspunkt (f.eks.
BASISEGENSKABER er meget løsere end SYREGARANTIER, men der er ikke en direkte en-til-en-kortlægning mellem de to konsistensmodeller (et punkt, der sandsynligvis ikke kan overvurderes).en BASE datalager værdier tilgængelighed (da det er vigtigt for skala), men det giver ikke garanteret konsistens af replikerede data på skrivetid. Samlet set giver BASISKONSISTENSMODELLEN en mindre streng sikkerhed end syre: data vil være konsistente i fremtiden, enten på Læsetid (f.eks.BASISKONSISTENSMODELLEN bruges primært af aggregerede butikker, herunder kolonnefamilie, nøgleværdi og dokumentbutikker.
navigering syre vs. BASE Trade-offs
der er ikke noget rigtigt svar på, om din ansøgning har brug for en syre versus BASE konsistens model. Udviklere og dataarkitekter bør vælge deres datakonsistensafvejninger fra sag til sag – ikke kun baseret på, hvad der er trend eller hvilken model der tidligere blev brugt.
I betragtning af Bases løse konsistens skal udviklere være mere vidende og strenge om ensartede data, hvis de vælger en BASISBUTIK til deres anvendelse. Det er vigtigt at være fortrolig med BASISADFÆRDEN i din valgte aggregatbutik og arbejde inden for disse begrænsninger.på den anden side kan planlægning omkring BASISBEGRÆNSNINGER undertiden være en stor ulempe sammenlignet med enkelheden ved SYRETRANSAKTIONER. En fuldt syre database er den perfekte pasform til brugssager, hvor data pålidelighed og konsistens er afgørende (Bank, nogen som helst?).
i de kommende uger vil vi dykke ned i flere syre / BASE-SPECIFIKATIONER, når det kommer til aggregerede butikker og andre grafteknologier.
Få din kopi af O ‘ Reilly Graph-Databasebogen og begynd at bruge grafteknologi til at løse virkelige problemer.
Hent bogen
Indhent resten af Grafdatabaserne til Begynderserier:
- hvorfor Grafteknologi er fremtiden
- hvorfor tilsluttede Data betyder noget
- det grundlæggende i datamodellering
- datamodellering faldgruber for at undgå
- hvorfor en Databaseforespørgselssprog betyder noget (mere end du tror)
- Imperative vs. deklarative forespørgselssprog: hvad er forskellen?
- Grafteori & Predictive Modeling
- Graph Search Algorithm Basics
- hvorfor vi har brug for Noskl databaser
- en rundvisning i samlede butikker
- andre Grafdatateknologier
- Native vs Non-Native Graph Technology