Hjem Personlig finansiering Anvendelse af konsistensmetoder i NoSQL - dummies

Anvendelse af konsistensmetoder i NoSQL - dummies

Indholdsfortegnelse:

Video: Anvendelse af råvildtkølle 2024

Video: Anvendelse af råvildtkølle 2024
Anonim

Egenskaben for en database i konsistensen betyder, at Når data er skrevet til en database med succes, kan de følgende forespørgsler få adgang til dataene og få en ensartet visning af dataene. I praksis betyder det, at hvis du skriver en rekord til en database og derefter straks anmode om det, er du garanteret at se den. Det er især nyttigt for ting som Amazon-ordrer og bankoverførsler.

Konsistens er dog en glidende skala og et emne for dybt at dække her. I NoSQL-verdenen falder konsistensen generelt i en af ​​to lejre:

  • ACID-konsistens (ACID står for Atomicitet, Konsistens, Isolering, Holdbarhed): ACID betyder, at når data er skrevet, har du fuld konsistens i læser.

  • Eventuel konsistens (BASE): BASE betyder, at når data er skrevet, vil det til sidst virke som læsning.

Der er ikke krævet en kamp mellem mennesker, som tror på en stærk sammenhæng i en database, og de der tror det absolut er påkrævet (oversæt folk til NoSQL virksomheder 'marketingafdelinger! ).

Virkeligheden er et sted imellem. Er det ligegyldigt, at en persons Facebook-indlæg ikke ses af alle sine venner i fem minutter? Nej, sandsynligvis ikke. Skift "Facebook-indlæg" til "milliard-dollar-finansiel transaktion", og din holdning ændrer sig hurtigt! Hvilken konsistens tilgang du vælger afhænger af situationen. Efter min opfattelse er stærk konsistens altid det valg i missionskritiske virksomhedssystemssituationer.

ACID

ACID er et generelt sæt principper for transaktionssystemer, ikke noget der kun er knyttet til relationelle systemer eller endda bare databaser, så det er værd at vide om. ACID betyder i grunden, " Denne database har faciliteter til at stoppe dig fra at beskadige eller miste data, ", som ikke er givet for alle databaser. Faktisk leverer langt de fleste NoSQL-databaser ikke ACID-garantier.

Foundation DB, MarkLogic og Neo4j er bemærkelsesværdige undtagelser. Nogle NoSQL-databaser giver en lavere grad af garanti kaldet Check and Set , der kontrollerer, om en anden har ændret et dokument, før en transaktion kan gennemføres. Denne adfærd er normalt begrænset, fordi den har tendens til at blive implementeret på en enkelt rekordbasis.

MongoDB er en bemærkelsesværdig database, der giver mulighed for Check and Set. Med MongoDB kan en hel node-værdi af data låses under en opdatering, hvorved alle læses og alle skrives, indtil operationen er færdig.Selskabet arbejder dog på at fjerne denne begrænsning.

BASE

BASE betyder, at i stedet for at lave ACID-garantier, har databasen en indstillelig balance for konsistens og datatilgængelighed. Dette er typisk tilfældet, når noder i en given databaseklynge fungerer som primære ledere af en del af databasen, og andre noder indeholder skrivebeskyttede kopier.

For at sikre, at alle klienter ser alle opdateringer (det vil sige, at de har en ensartet visning af dataene), skal en skrivning til den primære node, der indeholder dataene, låses, indtil alle læserreplikater er opdaterede. Dette kaldes en to - faseforpligning - ændringen foretages lokalt, men anvendes kun og bekræftes kun til klienten, når alle andre noder opdateres.

BASE slapper af dette krav, idet der kun kræves en delmængde af noderne, der indeholder de samme data, der skal opdateres for at transaktionen skal lykkes. Nogle gange efter at transaktionen er begået, opdateres den skrivebeskyttede kopi.

Fordelen ved denne tilgang er, at transaktionerne er forpligtet hurtigere. At have læsbare live replikaer betyder også, at du kan sprede din data læse belastning, hvilket gør læsning hurtigere.

Ulempen er, at kunder, der forbinder til nogle af de læste replikaer, kan se forældede oplysninger i en ubestemt periode. I nogle scenarier er denne tilstand fint. Hvis du sender en ny besked på Facebook, og nogle af dine venner ikke ser det i et par minutter, er det ikke et stort tab. Hvis du sender en betalingsordre til din bank, kan du dog have en øjeblikkelig transaktion.

En alternativ tilgang til read-only replikaer er at have en delt - intet klynge, hvor kun ét knudepunkt på en klynge altid betjener en bestemt del af databasen.

Fælles intet betyder ikke, at du mister replikering. Databaser, der anvender denne metode, replikerer typisk deres data til et sekundært område på en anden primærknude eller noder - men kun et knudepunkt er mesteren for læsning og skrivning til enhver tid.

Delte-ingenting-klynger har fordelen af ​​en enklere konsistensmodel, men kræver en tofase-forpligtelse til at kopiere. Denne kendsgerning betyder, at transaktionen låses, mens alle replikaer opdateres. (En intern lås plus låsning til andre knudepunkter giver dig to faser.)

Dette har typisk mindre indflydelse end delte dataklynger med skrivebeskyttede replikaer, fordi delte-ikke-replika-dataområder ikke modtager læseanmodninger for det en del af databasen. Derfor er tofaseforbindelser hurtigere på en delt-ingenting-klynge end på en klynge med læsbare replikaer.

Valg af syre eller base?

Som du måske forventer, er meget af argumentet, fordi NoSQL-forhandlere kan skelne sig fra deres konkurrenter ved at påstå en anden, unik tilgang. Det er interessant at bemærke, at antallet af NoSQL-leverandører med ACID-overholdelse på deres køreplan.

Nogle NoSQL-databaser har ACID-overensstemmelse på deres køreplan, selvom de er fortalere for BASE, som viser, hvordan relevante ACID-garantier er til enterprise, mission - critical systemer.

Mange virksomheder anvender BASE-konsistensprodukter, når de tester ideer, fordi de er gratis, men derefter overgår til en ACID-kompatibel betalt database, når de ønsker at gå live på et missionskritisk system.

Den nemmeste måde at afgøre, om du har brug for ACID, er at overveje de interaktioner folk og andre systemer har med dine data. Hvis du f.eks. Tilføjer eller opdaterer data, er det vigtigt, at den allerførste forespørgsel er i stand til at se ændringen? Med andre ord er vigtige beslutninger hængende på databasens nuværende tilstand? Vil man se lidt forældede data, betyder at disse beslutninger kan være dårligt fejlbehæftet?

I finansielle tjenesteydelser er behovet for sammenhæng åbenbar. Tænk på, at handlende køber lager. De skal kontrollere kontantbalancen før handel for at sikre, at de har penge til at dække handlen. Hvis de ikke ser den korrekte balance, vil de beslutte at bruge penge på en anden transaktion. Hvis den database, de spørger efter, kun er i sidste ende konsekvent, kan de muligvis ikke se en mangel på tilstrækkelige midler og dermed udsætte deres organisation for økonomisk risiko.

Lignende tilfælde kan bygges til ACID over BASE i sundhedspleje, forsvar, intelligens og andre sektorer. Alt sammen kolliderer dataene og vigtigheden af ​​både aktualitet og datasikkerhed.

Anvendelse af konsistensmetoder i NoSQL - dummies

Valg af editor

Test din kode med Dreamweavers webstedrapporteringsfunktioner - dummies

Test din kode med Dreamweavers webstedrapporteringsfunktioner - dummies

Hvis du har brugt Dreamweaver til bygg din mobilwebsite, du kan tjekke dit arbejde ved hjælp af Dreamweaver Site Reporting funktionerne. Det lader dig oprette en række rapporter og endda tilpasse dem til at identificere problemer med eksterne links, overflødige og tomme tags, untitled dokumenter og manglende alternativ tekst. Du kan nemt gå glip af problemer - især ...

Sådan bruger du dit eget domæne til dit Squarespace-websted - dummier

Sådan bruger du dit eget domæne til dit Squarespace-websted - dummier

Når du underskriver op for din Squarespace-konto, får du en unik Squarespace-URL, der ser sådan ud: http: // dit kontonavn. Squarespace. com. Hvis du vil have fuldstændig kontrol over branding af dit websted eller blot ønsker en unik webadresse, kan du kortlægge eller pege på et brugerdefineret domæne på din Squarespace-konto. Du har tre muligheder for indstilling ...

Fordelene ved at bruge Markdown på din Squarespace Website - dummies

Fordelene ved at bruge Markdown på din Squarespace Website - dummies

Markdown er en plain- tekst skriftformat, der gør det muligt hurtigt at anvende tekst styling baseret på hvordan du formaterer din Squarespace 6 websteds tekst. Markdown er en af ​​Du bruger to typer blokke, du kan bruge til at tilføje tekst. Du tilføjer indhold til dine Squarespace-sidesider ved at bruge indholdsblokke i Site Manager → Indhold ...

Valg af editor

Wicca og Witchcraft For Dummies Cheat Sheet - dummies

Wicca og Witchcraft For Dummies Cheat Sheet - dummies

Wicca, en heksekunst, er centreret i rituelle Wiccans udfører til specifikke formål, såsom at kommunikere med eller ære guddom. Sabbats er wiccan sol helligdage fokuseret på jordens sti omkring solen, nogle gange omtalt som Årets hjul. Esbats er wiccan månens ferie, der fokuserer på månens cyklus. ...

Sammenhængende trosretninger: almindelige erfaringer i skrifterne - dummies

Sammenhængende trosretninger: almindelige erfaringer i skrifterne - dummies

Interessant de tre Abrahams trosretninger - jødedom, kristendom , og islam - deler meget til fælles, herunder en række af ædle profeter sendt af Gud. På grund af commonality ligger en dyb forbindelse til arv fra profeten Abraham og en tro på en Gud. Koranen finder fælles sted med kristne og jøder (kendt ...

Charmerende din vej til effektiv magi - dummies

Charmerende din vej til effektiv magi - dummies

En firkløver for held. Den jakkesæt, som du altid bærer til jobsamtaler for succes. Ringen du tager aldrig af, fordi den repræsenterer din kærlighed til en anden person. Den hængende du bærer rundt om halsen hver dag for beskyttelse. Den lille statue hængende fra bilens bagspejl til sikker rejse. ...

Valg af editor

Vælger skråninger, kanter og ansigter i blender - dummies

Vælger skråninger, kanter og ansigter i blender - dummies

I Blender's Edit-tilstand, kuben ændrer farve og prikker danner i hver af kubens hjørner. Hver prik er et vertex. Linjen der dannes mellem to hjørner er en kant. Et ansigt i Blender er en polygon, der er dannet af tre eller flere forbindelseskanter. Tidligere er ansigter i Blender ...