Programmering

Flyt over Memcached og Redis, her kommer Netflix's Hollow

Efter to års intern brug tilbyder Netflix et nyt open source-projekt som en kraftig mulighed for at cache datasæt, der konstant ændres.

Hollow er et Java-bibliotek og værktøjssæt rettet mod in-memory caching af datasæt op til flere gigabyte i størrelse. Netflix siger, at Hollow's formål er tredelt: Det er beregnet til at være mere effektiv til lagring af data; det kan give værktøjer til automatisk at generere API'er for nem adgang til dataene; og det kan automatisk analysere dataanvendelsesmønstre for mere effektivt at synkronisere med backenden.

Lad os holde dette imellem os

De fleste scenarier for caching af data på et system, hvor det ikke er gemt - et "forbruger" -system snarere end et "producent" -system, involverer brug af et produkt som Memcached eller Redis. Hollow minder om begge produkter, da det bruger lagerhukommelse i hukommelsen til hurtig adgang, men det er ikke en egentlig datalager som Redis.

I modsætning til mange andre datacache-systemer er Hollow beregnet til at blive koblet til et specifikt datasæt - et givet skema med visse felter, typisk en JSON-stream. Dette kræver noget forberedelsesarbejde, selvom Hollow giver nogle værktøjer til delvis at automatisere processen. Årsagen til at gøre dette: Hollow kan gemme dataene i hukommelsen som stærkt typede stykker med fast længde, der ikke er underlagt Java's skraldsamling. Som et resultat er de hurtigere tilgængelige end konventionelle Java-objekter.

En anden påstået velsignelse med Hollow er, at den giver en række værktøjer til at arbejde med dataene. Når du har defineret et skema for dataene, kan Hollow automatisk producere en Java API, der kan levere data til autofuldførelse til en IDE. Dataene kan også spores, når de ændres, så udviklere har adgang til point-in-time snapshots, forskelle mellem snapshots og data rollbacks.

Hurtigere rundt omkring

Mange af fordelene, som Netflix hævder for Hollow, indebærer grundlæggende operationel effektivitet - nemlig hurtigere opstartstid for servere og mindre hukommelseskurring. Men Hollow's datamodellerings- og styringsværktøjer er også beregnet til at hjælpe med udvikling, ikke blot fremskynde produktionen.

"Forestil dig at være i stand til hurtigt at shunt hele dit produktionsdatasæt - aktuelt eller fra ethvert tidspunkt i den seneste tid - ned til en lokal udviklingsarbejdsstation, indlæse det og derefter præcist gengive specifikke produktionsscenarier," siger Netflix i sit indledende blogindlæg.

En advarsel er, at Hollow ikke er egnet til datasæt i alle størrelser - "KB, MB og GB, men ikke TB", er det, hvordan virksomheden sætter det i sin dokumentation. Når det er sagt, indebærer Netflix også, at Hollow reducerer mængden af ​​udbredelse, der kræves af et cachelagret datasæt. "Med de rigtige rammer og en lille smule datamodellering er denne [hukommelses] tærskel sandsynligvis meget højere, end du tror," skriver Netflix.