Hem Personliga finanser Tillämpa konsistensmetoder i NoSQL-dummies

Tillämpa konsistensmetoder i NoSQL-dummies

Innehållsförteckning:

Video: Tillämpa Guds Ord - Simon Johansson 2024

Video: Tillämpa Guds Ord - Simon Johansson 2024
Anonim

Egenskapen för en databas i en databas betyder att När data efter en gång har skrivits till en databas, kan följande frågor komma åt data och få en konsekvent bild av data. I praktiken betyder det att om du skriver en post till en databas och sedan omedelbart begär det, är du garanterad att se den. Det är särskilt användbart för saker som Amazon-order och banköverföringar.

Konsistens är dock en glidande skala och ett ämne för djupt för att täcka här. I NoSQL-världen faller konsistensen i allmänhet i en av två läger:

ACID-konsistens (ACID står för atomitet, konsistens, isolering, hållbarhet):

  • ACID betyder att när data har skrivits har du full konsistens i läser. Eventuell konsistens (BASE):

  • BASE betyder att när data har skrivits så kommer det så småningom att framstå som läsning.

    En kamp har rasat mellan människor som tror stark konsistens i en databas är inte nödvändig, och de som tror det är absolut nödvändigt (översätt

personer till NoSQL företag "marknadsavdelningar! ). Verkligheten ligger någonstans däremellan. Det spelar ingen roll att en persons Facebook-post inte ses av alla hans vänner i fem minuter? Nej, förmodligen inte. Ändra "Facebook-post" till "miljard dollar-finansiell transaktion", och din inställning förändras snabbt! Vilken konsistensmetod du väljer beror på situationen. Enligt min erfarenhet är stark konsistens alltid valet i missionskritiska företagsystemssituationer.

ACID

ACID är en generell uppsättning principer för transaktionssystem, inte något som endast är kopplat till relationella system, eller till och med bara databaser, så det är väl värt att veta om. Syra betyder i grunden, "

Den här databasen har möjligheter att stoppa dig från att korrumpera eller förlora data, " som inte är angivet för alla databaser. Faktum är att de allra flesta NoSQL-databaser inte ger ACID-garantier. Foundation DB, MarkLogic och Neo4j är noterbara undantag. Vissa NoSQL-databaser ger en lägre garanti som heter

Check and Set som verifierar om någon annan har ändrat ett dokument innan en transaktion kan slutföras. Detta beteende är vanligtvis begränsat eftersom det tenderar att genomföras på en enda rekordbasis. MongoDB är en anmärkningsvärd databas som tillhandahåller Check and Set-funktioner. Med MongoDB kan en hel nod-värde av data låsas under en uppdatering, vilket förhindrar att alla läser och alla skriver operationer tills operationen är klar.Företaget arbetar dock med att ta bort denna begränsning.

BASE

BASE betyder att i stället för att göra ACID-garantier, har databasen en inställbar balans av konsistens och tillgänglighet av data. Detta är vanligtvis fallet när noder i ett visst databaskluster fungerar som primära chefer för en del av databasen, och andra noder håller skrivskyddade replikor.

För att säkerställa att varje klient ser alla uppdateringar (det vill säga de har en konsekvent bild av data) måste en skriv till den primära noden som innehåller data låsa tills alla läsreplikat är aktuella. Detta kallas en

två - fasförband - ändringen görs lokalt men appliceras och bekräftas endast för klienten när alla andra noder uppdateras. BASE slappnar av det här kravet och kräver endast en delmängd av noderna med samma data som ska uppdateras för att transaktionen ska lyckas. Någon gång efter att transaktionen har åtagits uppdateras den skrivskyddade repliken.

Fördelen med detta tillvägagångssätt är att transaktionerna åtagits snabbare. Att ha läsbara levande replikor betyder också att du kan sprida din datalastning, vilket gör behandlingen snabbare.

Nackdelen är att klienter som ansluter till några av de läste replikerna kan se utdaterad information under en ospecificerad tid. I vissa scenarier är detta tillstånd bra. Om du skickar ett nytt meddelande till Facebook och några av dina vänner inte ser det i ett par minuter är det inte en stor förlust. Om du skickar en betalningsorder till din bank kanske du vill ha en omedelbar transaktion.

Ett alternativt tillvägagångssätt för skrivskyddade replikor är att ha ett

delat - inget -kluster där endast en nod på ett kluster tjänar alltid en viss del av databasen. Delat ingenting betyder inte att du förlorar replikering. Databaser som använder denna metod replikerar vanligtvis deras data till ett sekundärt område på en annan primär nod eller noder - men endast en nod är befälhavaren för att läsa och skriva när som helst.

Delade-ingenting-klyftor har fördelen av en enklare konsistensmodell men kräver en tvåfasig förpliktelse att replikera. Detta faktum betyder att transaktionen låser medan alla replikor uppdateras. (Ett internt lås plus låsning för andra noder ger dig två faser.)

Detta har vanligtvis mindre effekt än delade dataklyftor med skrivskyddade replikor, eftersom delade-ingenting-replikdataområden inte mottar läsförfrågningar för det del av databasen. Därför är tvåfas-förpliktelser snabbare på ett delat-inget-kluster än på ett kluster med läsbara repliker.

Välja sur eller bas

Som du kanske förväntar dig är mycket av argumentet att NoSQL-leverantörer kan skilja sig från sina konkurrenter genom att hävda ett annat, unikt tillvägagångssätt. Det är intressant att notera dock antalet NoSQL-leverantörer med ACID-överensstämmelse på deras färdplan.

Vissa NoSQL-databaser har ACID-överensstämmelse i sin färdplan, trots att de är förespråkare för BASE, vilket visar hur relevanta ACID-garantier är för

enterprise, mission - critical -system. Många företag använder BASE-konsistensprodukter när de testa idéer eftersom de är gratis men sedan migrera till en ACID-kompatibel betald databas när de vill leva på ett missionskritiskt system.

Det enklaste sättet att avgöra om du behöver ACID är att överväga de interaktioner människor och andra system har med dina data. Om du till exempel lägger till eller uppdaterar data, är det viktigt att nästa nästa fråga kan se ändringen? Med andra ord är viktiga beslut som hänger på databasens nuvarande tillstånd? Skulle vi kunna se lite föråldrad data betyder att dessa beslut kan vara dårligt bristfälliga?

I finansiella tjänster är behovet av konsistens uppenbart. Tänk på handlare som köper lager. De måste kontrollera kontantbalansen före handel för att se till att de har pengar för att täcka handeln. Om de inte ser rätt balans, bestämmer de sig för att spendera pengar på en annan transaktion. Om databasen som de frågar är endast i slutändan konsekvent kan de inte se brist på tillräckliga medel och därigenom exponera deras organisation för ekonomisk risk.

Liknande fall kan byggas för ACID över BASE inom hälsovård, försvar, intelligens och andra sektorer. Allting pekar dock på data, och vikten av både aktualitet och datasäkerhet.

Tillämpa konsistensmetoder i NoSQL-dummies

Redaktörens val

Fastighetsprofessionens grunder för fastighetslicensexamen - dummies

Fastighetsprofessionens grunder för fastighetslicensexamen - dummies

Fastighetsexamen kommer att förvänta dig att du har ett grundläggande grepp på fastighetsbranschen. Du tror att det bara är uppenbart att veta vad de viktigaste spelarna gör i en fastighetsaffär, men på grund av den terminologi de delar, blir skillnaderna mellan spelarna lite muddlade. Här är snabba beskrivningar ...

Kostnadsmetoden för fastighetslicensexamen - dummies

Kostnadsmetoden för fastighetslicensexamen - dummies

En metod för att uppskatta Värdet på fastigheter kallas kostnaden. Du måste känna till formeln för fastighetslicensexamen. Kostnadsmetoden baseras på tanken att komponenterna i en fastighet eller marken och byggnaderna kan läggas till för att komma fram till ...

Studie för fastighetslicensexamen - dummies

Studie för fastighetslicensexamen - dummies

När var sista gången du tog en multipelvalsexamen ? Eller, för den delen, någon examen? Det är troligt att det var länge sedan. Kanske överväger du huruvida du ska bli en fastighetsmäklare, men du är lite avskräckt av tanken på att du måste göra ett test. Vad du kan ...

Redaktörens val

Följer ett basketspel på tv - dummies

Följer ett basketspel på tv - dummies

Du kommer bli mycket mer ute av att titta på ett basketspel på TV - eller till och med leva - om du gör mer än att se bollen gå in i rammen. Kolla in dessa insider tips för att fånga den verkliga åtgärden och öka din njutning av sporten. Förutse nästa pass Försök att tänka som ...

Top 5 Fantasy Basketball League Sites - Dummies

Top 5 Fantasy Basketball League Sites - Dummies

Att hitta och gå med på en fantasy basketplats kan ibland vara skrämmande uppgift eftersom så många alternativ är tillgängliga och de flesta webbplatser ser lika ut. Bara för att webbplatser ser ut som det betyder inte nödvändigtvis att de mäter i värde. Vissa webbplatser erbjuder gratis ligor, andra betalade - och vissa webbplatser tillhandahåller bara standard liga ...

Tryck på motståndarna i Basket - Dummies

Tryck på motståndarna i Basket - Dummies

Pressen är kort för tryck. Ofta kallad en fullrättspress, det här är ett anfallande försvar som används på backen, där målet är att tvinga en omsättning. Vanligtvis används efter en gjord korg, svänger pressgruppen över motståndarna i backcourt; Om motståndarna lyckas få bollen förbi halvvägs (kallad brytning ...

Redaktörens val

Hur R beräknar oändliga, odefinierade och saknade värden - dummies

Hur R beräknar oändliga, odefinierade och saknade värden - dummies

Lyckligtvis kan R hantera dataanomalier som förvirrar några andra statistiska plattformar. I vissa fall har du inte reella värden att beräkna med. I de flesta verkliga dataset saknas faktiskt åtminstone några värden. Dessutom har vissa beräkningar oändlighet som ett resultat (som att dividera med noll) eller kan inte ...

Hur man lägger till linjer i en plot i R-dummies

Hur man lägger till linjer i en plot i R-dummies

I R, lägger du till rader i en plott på ett mycket liknande sätt att lägga till poäng, förutom att du använder funktionen linjer () för att uppnå detta. Men använd först lite R magi för att skapa en trendlinje genom data, kallad en regressionsmodell. Du använder lm () -funktionen för att uppskatta en linjär ...

Hur man lägger till en andra dimension i R-dummies

Hur man lägger till en andra dimension i R-dummies

Förutom vektorer kan R representera matriser som ett objekt du arbetar och beräknar med. Faktum är att R verkligen lyser när det gäller matrisberäkningar och -operationer. Vektorer är nära relaterade till en större klass av objekt, arrays. Arrayer har två mycket viktiga egenskaper: De innehåller bara en enda typ av värde. De har ...