Die Firma Meta* hat die Wiederaufnahme der Entwicklung der Speicherverwaltungsbibliothek jemalloc bekannt gegeben, deren Repository im Juni letzten Jahres in den Archivmodus versetzt wurde. Die jemalloc-Bibliothek bietet eine alternative Implementierung von malloc-Funktionen, die für eine reduzierte Fragmentierung und den Betrieb in Mehrprozessorsystemen optimiert ist.
Es wird erwähnt, dass das Unternehmen Meta die Vorteile der Anwendung von jemalloc in seiner Infrastruktur erkannt hat und beschlossen hat, die Arbeit an diesem Bibliothekscode wieder aufzunehmen, um die Wartungskosten zu senken, die Codebasis zu modernisieren, technischen Schulden abzubauen und den Allocator für neue Lasttypen und aktuelle Hardware anzupassen. Die Entwicklung wird in Form eines Open-Source-Projekts fortgesetzt, das gemeinsam mit der Community vorangetrieben wird und die Beteiligung externer Mitwirkender begrüßt.
Die jemalloc-Bibliothek wurde 2005 von Jason Evans für FreeBSD 7.0 entwickelt, anschließend nach NetBSD portiert und in Firefox integriert. Im Jahr 2009 wechselte der Autor jemalloc zu Facebook, wo die Bibliothek in internen Projekten eingesetzt wurde. Jason verließ Facebook 2017, und die Entwicklung wurde von dem verbleibenden Team dort fortgesetzt. Nach der Umbenennung in Meta änderten sich die Prioritäten des Unternehmens, die Entwicklung der Bibliothek kam zum Stillstand, und die öffentliche Codebasis verschlechterte sich im Laufe der Zeit. Um die öffentliche Bibliothek funktionsfähig zu halten, wäre ein erheblicher Refactoring-Aufwand nötig gewesen, aber Jason war nicht bereit, seine Zeit dafür aufzuwenden, und hat deshalb vor 10 Monaten das Repository in den Archivmodus überführt.
Zu den Plänen, die Facebook nach der Wiederbelebung des Projekts umsetzen möchte, gehören:
- Die Verringerung der angesammelten technischen Schulden, die Durchführung von Refactoring und die Bereinigung der Codebasis sowie die Verbesserung der Bibliothek, um Effizienz, Zuverlässigkeit und Benutzerfreundlichkeit zu gewährleisten.
- Fortsetzung der Entwicklung des HPA (Huge-Page Allocators), um den CPU-Ressourcenverbrauch durch eine effizientere Nutzung großer Speicherseiten (transparent hugepage) zu optimieren.
- Änderungen zur Verbesserung der Speichereffizienz, die mit der Optimierung der Strukturpackung, dem Caching und der Bereinigung freigegebener Speicherblöcke verbunden sind.
- Hinzufügung von Optimierungen für die AArch64-Architektur (ARM64).
Quelle: opennet.ru
