L'azienda Meta* ha annunciato il ripristino dello sviluppo della libreria di gestione della memoria jemalloc, il cui repository è stato archiviato a partire da giugno dello scorso anno. La libreria jemalloc offre un'implementazione alternativa delle funzioni malloc, ottimizzata per ridurre la frammentazione e per funzionare su sistemi multiprocesso.
Si segnala che Meta ha compreso i vantaggi dell'uso di jemalloc nella propria infrastruttura e ha deciso di riprendere il lavoro sul codice di questa libreria per ridurre i costi di manutenzione, aggiornare la base di codice, eliminare il debito tecnico e adattare l'allocatore a nuove tipologie di carico e all'hardware attuale. Lo sviluppo continuerà come progetto open source, evoluto in collaborazione con la comunità e apertamente disponibile alla partecipazione di terzi.
La libreria jemalloc è stata sviluppata da Jason Evans nel 2005 per FreeBSD 7.0, dopodiché è stata portata su NetBSD e integrata in Firefox. Nel 2009, l'autore di jemalloc è passato a lavorare per Facebook, dove questa libreria è stata utilizzata in progetti interni. Nel 2017, Jason ha lasciato Facebook e lo sviluppo è proseguito con il team rimasto. Dopo il cambio di nome in Meta, le priorità dell'azienda sono cambiate, lo sviluppo della libreria si è fermato e si è concentrato solo sulle esigenze interne, mentre la base di codice pubblica è lentamente degradata. Per mantenere attiva la libreria pubblica era necessaria una significativa ristrutturazione, ma Jason non era disposto a dedicare tempo a questo lavoro e quindi, 10 mesi fa, ha archiviato il repository.
Tra i piani che Facebook ha in programma di realizzare dopo la rinascita del progetto ci sono:
- Riduzione del debito tecnico accumulato, rifattorizzazione e pulizia della base di codice, miglioramento della libreria per mantenere efficienza, affidabilità e facilità d'uso.
- Continuazione dello sviluppo dell'allocatore HPA (Huge-Page Allocator) per ottimizzare il consumo delle risorse CPU attraverso un utilizzo più efficiente delle grandi pagine di memoria (transparent hugepage).
- Modifica per migliorare l'efficienza nella gestione della memoria, legata a un miglioramento della struttura di impacchettamento, caching e pulizia dei blocchi di memoria liberati.
- Aggiunta di ottimizzazioni per l'architettura AArch64 (ARM64).
Fonte: opennet.ru
