Das Unternehmen Meta* hat die Wiederaufnahme der Entwicklung der Speicherverwaltungsbibliothek jemalloc angekündigt, deren Repository im Juni vergangenen Jahres in den Archivmodus versetzt wurde. Die jemalloc-Bibliothek bietet eine alternative Implementierung der Funktionen malloc, die zur Reduzierung der Fragmentierung und zur Nutzung auf Mehrprozessorsystemen optimiert ist.
Es wird berichtet, dass das Unternehmen Meta die Vorteile der Verwendung von jemalloc in seiner Infrastruktur erkannt hat und beschlossen hat, die Arbeit an diesem Bibliothekscode wieder aufzunehmen, um die Kosten für Wartung, die Modernisierung des Codes, die Beseitigung von technischem Schulden und die Anpassung des Allocators an neue Lasttypen und aktuelle Hardware zu senken. Die Entwicklung wird als Open-Source-Projekt fortgesetzt, das gemeinsam mit der Community entwickelt wird und die Einbindung von externen Mitwirkenden begrüßt.
Die jemalloc-Bibliothek wurde 2005 von Jason Evans für FreeBSD 7.0 entwickelt, danach wurde sie nach NetBSD portiert und in Firefox integriert. Im Jahr 2009 wechselte der Autor von jemalloc zu Facebook, wo diese Bibliothek in internen Projekten verwendet wurde. 2017 verließ Jason Facebook, und die Entwicklung wurde vom verbleibenden Team bei Facebook fortgesetzt. Nach der Umbenennung in Meta änderten sich die Prioritäten des Unternehmens, die Entwicklung der Bibliothek stagnierte, die Arbeit konzentrierte sich nur auf interne Bedürfnisse, und die öffentlich zugängliche Codebasis degenerierte im Laufe der Zeit. Um die öffentliche Bibliothek funktionsfähig zu halten, war eine umfangreiche Überarbeitung erforderlich, aber Jason war nicht bereit, seine Zeit für diese Arbeit zu opfern und versetzte daher das Repository vor 10 Monaten in den Archivmodus.
Zu den Plänen, die Facebook nach der Wiederbelebung des Projekts umsetzen möchte, gehören:
- Die Reduzierung der angesammelten technischen Schulden, die Durchführung von Refactoring und die Bereinigung der Codebasis, die Verbesserung der Bibliothek zur Aufrechterhaltung der Effizienz, Zuverlässigkeit und Benutzerfreundlichkeit.
- Die Weiterentwicklung des HPA-Allocators (Huge-Page Allocator) zur Optimierung des CPU-Ressourcenverbrauchs durch eine optimalere Nutzung großer Speicherseiten (transparent hugepage).
- Änderungen zur Steigerung der Effizienz der Speicherarbeit, die mit der Verbesserung der Strukturverpackung, dem Caching und der Bereinigung freigegebener Speicherblöcke verbunden sind.
- Hinzufügen von Optimierungen für die Architektur AArch64 (ARM64).
Quelle: opennet.ru
