Hollow, il database in-memory e open source di Netflix

Data storageDatabase

Il gigante del video streaming propone la sua soluzione per chi vuole gestire database in-memory di dimensioni contenute, sulla scia della sua esperienza diretta

Non dovrebbe più sorprendere che a proporre soluzioni ai problemi dell’IT siano le grandi aziende utenti e non le classiche software house. Come Amazon ha creato un mondo cloud e Facebook si progetta i suoi switch, ad esempio, ora anche Netflix porta il suo contributo al mondo open source con un progetto che come punto di partenza è collegato allo streaming video ma tocca in generale il mondo dei database in-memory.

Il progetto in questione si chiama Hollow e rappresenta la soluzione di Netflix a un problema che il gigante dello streaming video si è posto relativamente alla distribuzione di metadati riguardanti la sua libreria di video verso le applicazioni di streaming degli utenti. Non si tratta quindi della distribuzione dei flussi video in sé, ma delle informazioni correlate che vanno a costituire la “vista” che un’applicazione per Smart TV o per dispositivi mobili ha dei film e delle serie TV disponibili in quel momento.

Secondo Netflix la gestione di queste basi dati relativamente piccole – nell’ordine del centinaio di gigabyte – di solito ha due soluzioni opposte tra le quali si cerca di mediare. Una soluzione è mantenere tutti i dati sui server centrali e farli consultare in tempo reale, l’altro estremo è inviarli tutti ai dispositivi clienti che ne mantengono una copia locale sempre aggiornata. Entrambi gli approcci hanno dei limiti: l’accesso ai server centrali può essere lento o non possibile, mantenere una copia integrale dei dati in locale può pesare troppo sulle risorse del sistema client.

Il funzionamento di Zeno, altro progetto di Netflix precursore di Hollow
Il funzionamento di Zeno, altro progetto di Netflix precursore di Hollow

La soluzione intermedia è mantenere una cache locale con i dati a cui si accede più di frequente e rimandare ai server la consultazione di quelli meno usati. Anche questa soluzione ha diversi lati negativi ma ha rappresentato per Netflix la base di partenza per Hollow, che in un certo senso ne è l’estensione. Invece di “cachare” una parte dei dati l’idea è stata quella di farlo per l’intero set di metadati, ossia arrivare a un formato di memorizzazione che consentisse di mantenerli tutti nella memoria del sistema client senza pesare troppo sulle sue risorse.

Hollow serve proprio a questo, quindi in generale a gestire un database in-memory di dimensioni contenute (il centinaio di gigabyte teorico viene compattato in un formato ottimizzato) che viene distribuito da un server centrale verso dispositivi client per la sola consultazione. Netflix lo fa per i metadati dei suoi video, il campo di applicazione in generale è molto più ampio.

Hollow è stato rilasciato come progetto open source su GitHub. Concretamente è una libreria Java per la gestione di piccoli database in-memory, accompagnata da alcuni tool software. Secondo Netflix il suo campo d’uso è più ampio di quanto non si immagini di primo acchito: “con il framework giusto e con un po’ di data modeling la soglia è molto più ampia di quanto pensiate”.

Read also :
Clicca per leggere la biografia dell'autore  Clicca per nascondere la biografia dell'autore