Innehållsförteckning:
Video: Web Programming - Computer Science for Business Leaders 2016 2024
Som med andra NoSQL-databastyper, med viktiga värdebutiker, kan du handla lite konsistens för viss tillgänglighet. Key-value-butiker tillhandahåller vanligtvis ett brett spektrum av konsistens- och hållbarhetsmodeller - det vill säga mellan tillgänglighet och partitionstolerans och mellan konsekvent och partitionstolerans.
Några viktiga värdebutiker går mycket längre på konsistensarmen och överger BASE för fullständigt ACID-transaktionsstöd. Att förstå var du kan rita linjen kan hjälpa dig att förkorta listan över potentiella databaser att överväga för ditt användarfall.
Handelskonsistens
Key-value-butiker handlar vanligen om konsistens i data (det vill säga att alltid läsa den senaste kopian av ett värde omedelbart efter en uppdatering) för att förbättra skrivtiderna.
Voldemort, Riak och Oracle NoSQL är alla så småningom konsekventa viktiga butiker. De använder en metod som heter Read Repair . Här är de två stegen som är involverade i läs reparation :
-
När du läser en post, bestäm vilken av flera tillgängliga värden för en nyckel som den senaste och mest giltiga.
-
Om det senaste värdet inte kan avgöras, presenteras databasklienten med alla värdealternativ och lämnas för att bestämma sig själv.
Bra exempel på att använda slutliga konsekventa värdefulla butiker inkluderar att skicka sociala medier och leverera s till riktade användare. Om en tweet anländer sent eller en fem minuters gammal visas, finns det ingen katastrofal dataförlust.
Implementering av ACID-stöd
Aerospike och Redis är anmärkningsvärda undantag för eventuell konsistens. Båda använder delade ingenting -kluster, vilket betyder att varje nyckel har följande:
-
En huvudnod: Endast mästarna ger svar på en enda nyckel, vilket säkerställer att du har den senaste kopian.
-
Flera slave replika noder: Dessa innehåller kopior av alla data på en huvudnod. Aerospike ger fullständig ACID-transaktionell konsistens genom att låta ändringar spolas direkt till disken innan transaktionen är flaggad som komplett till databasklienten.
Aerospike lyckas göra det med mycket höga hastigheter (vilket motsätter sig att ACID minskar skrivhastigheten). Aerospike hanterar råa SSD för dataskrivning genom att kringgå långsammare operativsystems filsystemstöd.
Naturligtvis innebär fler SSD: er högre serverkostnader. Du kan besluta att använda Redis (konfigurerad för att spola all data till disken när den kommer) är snabb nog och garanterar tillräcklig hållbarhet för dina behov.Standardinställningen i Redis är att skölja data till disken några sekunder och lämnar ett litet fönster med potentiell dataförlust om en server misslyckas.
Här är några exempel på när du kan behöva en ACID-kompatibel nyckelvärdesbutik:
-
När du tar emot sensordata som du behöver för ett experiment.
-
I ett meddelandesystem där du måste garantera kvitto.
Redis, till exempel, ger en publicerings- / prenumerationsmekanism som fungerar som en meddelandeserver bakåt. Denna funktion kombinerad med ACID-stöd möjliggör hållbart meddelande.