Programmering

Gå over Memcached og Redis, her kommer Netflix's Hollow

Etter to års intern bruk tilbyr Netflix et nytt open source-prosjekt som et kraftig alternativ for å cache datasett som endres kontinuerlig.

Hollow er et Java-bibliotek og verktøysett rettet mot hurtigbufring i minnet av datasett opptil flere gigabyte i størrelse. Netflix sier Hollow's formål er tredelt: Det er ment å være mer effektivt når det gjelder lagring av data; det kan gi verktøy for automatisk å generere APIer for enkel tilgang til dataene; og det kan automatisk analysere dataanvendelsesmønstre for å synkronisere mer effektivt med bakenden.

La oss holde dette mellom oss

De fleste av scenariene for hurtigbufring av data i et system der det ikke er lagret - et "forbruker" -system i stedet for et "produsent" -system, innebærer å bruke et produkt som Memcached eller Redis. Hollow minner om begge produktene siden det bruker lagring i minnet for rask tilgang, men det er ikke en faktisk datalager som Redis.

I motsetning til mange andre data caching-systemer, er Hollow ment å være koblet til et bestemt datasett - et gitt skjema med visse felt, vanligvis en JSON-strøm. Dette krever noe forarbeid, selv om Hollow gir noen verktøy for delvis å automatisere prosessen. Årsaken til dette: Hollow kan lagre dataene i minnet som faste lengder, sterkt skrevet biter som ikke er underlagt Java's søppelinnsamling. Som et resultat har de raskere tilgang enn vanlige Java-objekter.

En annen påstått velsignelse med Hollow er at den gir en rekke verktøy for å jobbe med dataene. Når du har definert et skjema for dataene, kan Hollow automatisk produsere et Java API som kan levere autofullførte data til en IDE. Dataene kan også spores når de endres, slik at utviklere har tilgang til øyeblikksbilder av tid, forskjeller mellom øyeblikksbilder og tilbakeføring av data.

Raskere rundt

Mange fordeler Netflix påstår for Hollow innebærer grunnleggende effektivitet - nemlig raskere oppstartstid for servere og mindre minneutslipp. Men Hollow's datamodellerings- og styringsverktøy er også ment å hjelpe med utvikling, ikke bare fremskynde produksjonen.

"Tenk deg å kunne raskt shunt hele produksjonsdatasettet ditt - nåværende eller fra et hvilket som helst punkt i den siste tiden - ned til en lokal utviklingsarbeidsstasjon, laste det, og deretter gjengi nøyaktig spesifikke produksjonsscenarier," sier Netflix i sitt innledende blogginnlegg.

En advarsel er at Hollow ikke er egnet for datasett i alle størrelser - "KB, MB og GB, men ikke TB", er hvordan selskapet legger det i dokumentasjonen. Når det er sagt, innebærer Netflix også at Hollow reduserer mengden sprawl som kreves av et hurtigbufret datasett. "Med riktig rammeverk, og litt datamodellering, er den [minnet] terskelen sannsynligvis mye høyere enn du tror," skriver Netflix.

$config[zx-auto] not found$config[zx-overlay] not found