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

Som standard använder Photoshop Elements färgplockare - dummies

Som standard använder Photoshop Elements färgplockare - dummies

En svart förgrundsfärg och en vit bakgrundsfärg. Om du experimenterar med färg och vill gå tillbaka till standardfärgerna, tryck på D-tangenten. Om du vill växla mellan förgrunds- och bakgrundsfärger trycker du på X-tangenten. Om du vill ha någon annan färg än svart och ...

Arbetar med kommandot Färgvariationer i Photoshop Elements 9 - dummies

Arbetar med kommandot Färgvariationer i Photoshop Elements 9 - dummies

Kommandot Färgvariationer i Photoshop Element är en digital färgkorrigeringsfunktion. Kommandot gör att du kan göra korrigeringar genom att visuellt jämföra miniatyrbilder av färgvariationer av din bild. Du kan använda det här kommandot när du inte är helt säker på vad som är fel med färgen eller vilken typ av färgsändning din bild har. Så här ...

Arbetar med Photoshop Elements 9 Project Bin-dummies

Arbetar med Photoshop Elements 9 Project Bin-dummies

Projektfacket i Photoshop Elements visar miniatyrbilder av alla dina öppna bilder. Oavsett om du arbetar i Redigera fullständigt eller Redigera snabbt läge, kan du omedelbart se en liten bild av alla bilder du har öppet på en gång. Du kan också se miniatyrbilder av alla olika visningar du ...

Redaktörens val

Hur man validerar obligatoriska fält i en formulärprocess sida - dummies

Hur man validerar obligatoriska fält i en formulärprocess sida - dummies

Du bygger PHP webbformulärsprocess sida i steg, börjar med den grundläggande ramen och sedan lägga till mer komplex validering och funktioner när du går. Öppna din textredigerare och skapa en ny fil. I den filen lägger du följande kod:

Vad gör HTML? - dummies

Vad gör HTML? - dummies

HTML instruerar webbläsaren på hur man visar text och bilder på en webbsida. Minns sista gången du skapade ett dokument med en ordbehandlare. Oavsett om du använder Microsoft Word eller Wordpad, Apple Pages eller ett annat program, har din textbehandlare ett huvudfönster där du skriver text och en meny eller ...

Vad gör Python? - dummies

Vad gör Python? - dummies

Python är ett allmänt användande programmeringsspråk som vanligtvis används för webbutveckling. Det här låter på samma sätt som Ruby, och verkligen är båda språk mer liknade än de är olika. Python, som Ruby, möjliggör lagring av data efter att användaren har navigerat bort från sidan eller stängt webbläsaren, till skillnad från HTML, CSS och JavaScript. Använda Python ...

Redaktörens val

Typer av högteknologiska lösenordssprickning - dummies

Typer av högteknologiska lösenordssprickning - dummies

Högteknologiskt lösenordssprickning är en typ av hacking som involverar Använda program som gissar ett lösenord genom att bestämma alla möjliga lösenordskombinationer. De viktigaste lösenordssprickningsmetoderna är ordboksattacker, brute-force attacker och regnbågeattacker. Ordboken attacker Dictionary attacker snabbt jämföra en uppsättning kända ordbokstyp ord - inklusive många vanliga lösenord - mot ett lösenord ...

Enhetligt meddelandevisningsverktyg - dummies

Enhetligt meddelandevisningsverktyg - dummies

Med enhetlig kommunikation och konvergens av röstbrevlåda med e-post och med skrivbordet på skrivbordet, du har nya sätt att interagera med röstmeddelanden. Du brukar brukade sända någon form av ljus på din skrivbordstelefon eller en stakad tonning när du lyfter luren för att varna dig när ett nytt röstmeddelande är ...

Enhetlig meddelandedelning - dummies

Enhetlig meddelandedelning - dummies

Eftersom enhetlig meddelandehantering gör att du kan ta emot dina telefonsvarare och fax som är inbäddade eller bifogade e-postmeddelanden i en enkel, enhetlig inkorg, så kan du också arbeta med de här meddelandetyperna på något sätt som du kan arbeta med ett e-postmeddelande. Med enhetlig meddelandehantering och en enda inkorg har du större kontroll och flexibilitet för att dela ...