Flytta över Memcached och Redis, här kommer Netflix's Hollow

Efter två års intern användning erbjuder Netflix ett nytt open source-projekt som ett kraftfullt alternativ för att cache-datauppsättningar som förändras ständigt.

Hollow är ett Java-bibliotek och verktygssats som syftar till cachning i minnet av datamängder upp till flera gigabyte. Netflix säger att Hollow's syfte är tredelt: Det är avsett att vara effektivare att lagra data; det kan tillhandahålla verktyg för att automatiskt skapa API: er för bekväm åtkomst till data; och det kan automatiskt analysera dataanvändningsmönster för att effektivare synkronisera med backend.

Låt oss hålla det här mellan oss

De flesta scenarier för caching av data i ett system där det inte lagras - ett "konsument" -system snarare än ett "producent" -system innebär att man använder en produkt som Memcached eller Redis. Hollow påminner om båda produkterna eftersom det använder lagring i minnet för snabb åtkomst, men det är inte en verklig datalager som Redis.

Till skillnad från många andra datacachingsystem är Hollow avsedd att kopplas till en specifik datamängd - ett visst schema med vissa fält, vanligtvis en JSON-ström. Detta kräver en del förberedelser, även om Hollow tillhandahåller vissa verktyg för att delvis automatisera processen. Anledningen till detta: Hollow kan lagra data i minnet som fasta, starkt skrivna bitar som inte omfattas av Java sopor. Som ett resultat är de snabbare att komma åt än konventionella Java-objekt.

En annan påstådd välsignelse med Hollow är att den ger en mängd verktyg för att arbeta med data. När du väl har definierat ett schema för data kan Hollow automatiskt producera ett Java API som kan leverera autofullständig data till en IDE. Data kan också spåras när de ändras, så utvecklare har tillgång till ögonblicksbilder i tid, skillnader mellan ögonblicksbilder och återställningar av data.

Snabbare runt

Många av fördelarna som Netflix hävdar för Hollow innebär grundläggande operativ effektivitet - nämligen snabbare starttid för servrar och mindre minne. Men Hollow's datamodellerings- och hanteringsverktyg är också avsedda att hjälpa till med utveckling, inte bara snabba produktionen.

"Tänk dig att snabbt kunna shunta hela din produktionsdatauppsättning - nuvarande eller från vilken tidpunkt som helst i det senaste förflutna - ner till en lokal utvecklingsarbetsstation, ladda den och sedan exakt återge specifika produktionsscenarier", säger Netflix i sitt inledande blogginlägg.

En varning är att Hollow inte passar för datamängder av alla storlekar - ”KB, MB och GB, men inte TB”, är hur företaget lägger det i sin dokumentation. Med detta sagt innebär Netflix också att Hollow minskar mängden spridning som krävs av en cachad datamängd. "Med rätt ram och lite datamodellering är tröskeln för [minne] troligen mycket högre än du tror", skriver Netflix.