Indholdsfortegnelse:
Video: New 2018 Crossover Lexus NX300h Hybrid 2025
Der er tidspunkter, hvor du vil give nøgleværdestil højhastighedstilgang til data i en relationsdatabase. Denne database kan f.eks. Være Berkeley DB (Java Edition for Voldemort) eller MySQL.
At levere nøgleværdi som adgang til data kræver, at en nøgleværdi butik lagres direkte over en af disse andre databaser. I grund og grund bruger du en anden database som lagringslag, snarere end en kombination af et filsystem til opbevaring og en indtastningsrørledning til kopiering af data fra en relationsdatabase.
Denne proces forenkler at levere en high-value nøgleværdi butik, mens du bruger en traditionel relationsdatabase til opbevaring.
Ændring af lagringsmotorer
Forskellige arbejdsbyrder kræver forskellige lagringsmotorer og ydeevneegenskaber. Aerospike er fantastisk til høj indtagelse; Redis er fantastisk til et stort antal læsninger. Hver er bygget op omkring en specifik brugs sag.
Voldemort har en anden tilgang. I stedet for at behandle nøgleværdibutikken som et separat niveau af datahåndtering behandler Voldemort nøgleværdi-butikken som et API og tilføjer et caching-lag i lageret, hvilket betyder at du kan tilslutte den bageste ende, der giver mest mening til dine særlige behov.
Hvis du vil have en enkel diskopbevaringskode, kan du bruge Berkeley DB Java Edition-oplagringsmaskinen. Hvis du i stedet ønsker at gemme relationelle data, kan du bruge MySQL som back-end til Voldemort.
Denne funktion kombineret med brugerdefinerede datatyper giver dig mulighed for at bruge en nøgleværdisbutiks enkle butik / hent API til effektivt at trække tilbage og direkte cache information i en anden back-end-butik.
Denne fremgangsmåde står i modsætning til den sædvanlige tilgang til at have separate databaser - f.eks. Oracle for transaktionsdata og en anden i din nøgleværdi butik (f.eks. Riak). Med denne to-tier-tilgang skal du udvikle kode for at flytte data fra et niveau til et andet til caching. Med Voldemort er der en kombineret tier - din dataklasse - så den ekstra kode er overflødig.
Caching data i hukommelsen
Voldemort har en indbygget cache i hukommelse, hvilket reducerer belastningen på lagermotoren og øger forespørgselsydelsen. Du behøver ikke bruge et separat caching-lag, som f.eks. Redis eller Oracle's Coherence Java-applikationsdata caching produkt øverst.
Muligheden for at levere højhastighedsopbevaring med caching er hvorfor LinkedIn bruger Voldemort til visse højtydende brugssager.
Med Voldemort får du det bedste fra begge verdener - en lagringsmotor til dine nøjagtige datakrav og en hurtig cache i hukommelsen for at reducere belastningen på den pågældende motor.Du får også enkle nøgleværdighedsbutikbutik / hent semantik oven på din oplagringsmotor.
Evaluering af Voldemort
I bøgerne Harry Potter bragte Lord Voldemort meget magi i ham, både godt og dårligt, selv om han brugte det til at terrorisere muggles. Voldemort-databasen, som det viser sig, kan også gemme store mængder data, men kan bruges til gode af datalogiker overalt!
Voldemort er stadig et produkt i udvikling. Mange stykker mangler stadig, så det understøtter ikke de forskellige lagringsmotorer, man måtte forvente. Dette fokus for Voldemorts udviklingssamfund er sandsynligt, fordi Voldemort er bygget i Java-programmeringssproget, hvilket kræver, at der oprettes en Java Native Interface (JNI) -stik for integration til de fleste C- eller C ++-baserede databaser.
Voldemort har dog god integration med serialiseringsrammer. Understøttede rammer omfatter Java serialisering, Avro, Sparsommelighed og Protocol buffere. Dette betyder, at de indleverede API wrappers matcher den velkendte serialiseringsmetode for hvert programmeringssprog, hvilket gør udviklingen af applikationer intuitiv.
Voldemort håndterer ikke konsistens såvel som andre systemer gør. Voldemort anvender Read Repair tilgangen, hvor inkonsekvente versionsnumre for den samme rekord er fastsat ved læsetid, i stedet for at blive holdt konsistente på skrivetidspunktet.
Der er heller ingen sekundær indeksering eller forespørgselsstøtte; Voldemort forventer, at du bruger faciliteterne til den underliggende lagringsmotor til at klare den brugssag. Voldemort har heller ikke native databaseudløsere eller en advarsels- eller begivenhedsbehandlingsramme, som man kan opbygge.
Hvis du har brug for en nøgleværdisbutik, der er yderst tilgængelig, er partitionstolerant, kører i Java og bruger forskellige lagringsbakender, så kan Voldemort være for dig.