Pomaknite se preko Memcacheda i Redisa, dolazi Netflixova šupljina

Nakon dvije godine interne upotrebe, Netflix nudi novi projekt otvorenog koda kao moćnu opciju za predmemoriranje skupova podataka koji se neprestano mijenjaju.

Šuplje je Java knjižnica i skup alata usmjeren na predmemoriranje skupova podataka u memoriji do nekoliko gigabajta. Netflix kaže da je Hollowova svrha trostruka: namijenjen je učinkovitijem pohranjivanju podataka; može pružiti alate za automatsko generiranje API-ja za prikladan pristup podacima; a može automatski analizirati obrasce korištenja podataka radi učinkovitije sinkronizacije s pozadinom.

Neka ovo ostane među nama

Većina scenarija za predmemoriranje podataka u sustavu u kojem nisu pohranjeni - sustav "potrošač", a ne sustav "proizvođač", uključuje upotrebu proizvoda poput Memcached ili Redis. Šuplje podsjeća na oba proizvoda jer koristi memoriju u memoriji za brzi pristup, ali nije stvarna pohrana podataka poput Redisa.

Za razliku od mnogih drugih sustava za predmemoriranje podataka, Hollow je namijenjen spajanju s određenim skupom podataka - zadanom shemom s određenim poljima, obično JSON streamom. To zahtijeva neke pripreme, iako Hollow nudi neke alate za djelomičnu automatizaciju procesa. Razlog za to: Šuplje može pohraniti podatke u memoriju kao čvrsto otkucane dijelove fiksne duljine koji nisu predmet Java-ovog odvoza smeća. Kao rezultat, brži im je pristup od konvencionalnih Java objekata.

Još jedna navodna blagodat s Hollow-om je ta što pruža spektar alata za rad s podacima. Nakon što definirate shemu za podatke, Hollow može automatski proizvesti Java API koji IDE-u može dostaviti podatke o samodovršavanju. Podaci se također mogu pratiti kako se mijenjaju, tako da programeri imaju pristup trenutnim snimkama, razlikama između snimki i povratima podataka.

Sve brže okolo

Mnogo prednosti koje Netflix tvrdi za Hollow uključuje osnovnu operativnu učinkovitost - naime, brže vrijeme pokretanja poslužitelja i manje odljeva memorije. Ali Hollowovi alati za modeliranje i upravljanje podacima također trebaju pomoći u razvoju, a ne samo ubrzati proizvodnju.

"Zamislite da možete brzo preusmjeriti cijeli svoj proizvodni niz podataka - trenutni ili iz bilo koje točke u nedavnoj prošlosti - do lokalne razvojne radne stanice, učitati je, a zatim točno reproducirati određene proizvodne scenarije", kaže Netflix u uvodnom postu na blogu.

Jedna je opaska da Hollow nije prikladan za skupove podataka svih veličina - "KB, MB i GB, ali ne i TB", kako tvrtka navodi u svojoj dokumentaciji. No, Netflix također podrazumijeva da Hollow smanjuje količinu širenja potrebnu za predmemoriranim skupom podataka. "S pravim okvirom i malo modeliranja podataka, taj je [memorijski] prag vjerojatno puno veći nego što mislite", piše Netflix.