Spoločnosť Meta* oznámila obnovenie vývoja knižnice správy pamäte jemalloc, ktorej repozitár bol v júni minulého roka prevedený do archívneho režimu. Knižnica jemalloc ponúka alternatívnu implementáciu funkcií malloc, optimalizovanú na zníženie fragmentácie a prácu na viacprocesorových systémoch.
Upozorňuje sa, že spoločnosť Meta si uvedomila výhody použitia jemalloc vo svojej infraštruktúre a rozhodla sa obnoviť prácu na kóde tejto knižnice s cieľom znížiť náklady na údržbu, modernizáciu kódovej základne, zbavenie sa technického dlhu a prispôsobenie alokátora novým typom záťaže a aktuálnemu hardvéru. Vývoj bude pokračovať vo forme otvoreného projektu, ktorý bude rozvíjaný spoločne s komunitou a vítal zapojenie externých účastníkov.
Knižnicu jemalloc vytvoril Jason Evans v roku 2005 pre FreeBSD 7.0, následne bola portovaná do NetBSD a integrovaná do Firefoxu. V roku 2009 autor jemalloc prešiel do spoločnosti Facebook, kde sa táto knižnica používala vo vnútorných projektoch. V roku 2017 Jason odišiel zo spoločnosti Facebook, a vývoj pokračoval zostávajúci tím z Facebooku. Po premenovaní na Meta sa priority spoločnosti zmenili, rozvoj knižnice sa zastavil a vývoj sa sústredil iba na vnútorné potreby, zatiaľ čo verejná kódová základňa časom degradovala. Na udržanie verejnej knižnice bola potrebná významná refaktoring, ale Jason nebol ochotný tráviť svoj čas touto prácou a preto pred 10 mesiacmi previedol repozitár do archívneho režimu.
Medzi plány, ktoré spoločnosť Facebook plánovala realizovať po oživení projektu, patrí:
- Zníženie nahromadeného technického dlhu, refaktoring a čistenie kódovej základne, zdokonalenie knižnice pre zachovanie efektívnosti, spoľahlivosti a jednoduchej použiteľnosti.
- Pokračovanie vývoja alokátora HPA (Huge-Page Allocator) na optimalizáciu spotreby zdrojov CPU prostredníctvom optimálnejšieho využitia veľkých stránok pamäte (transparent hugepage).
- Zavedenie zmien na zvýšenie efektivity práce s pamäťou, súvisiacich s vylepšením balenia štruktúr, vyrovnávacieho uloženia a čistenia uvoľnených blokov pamäte.
- Pridanie optimalizácií pre architektúru AArch64 (ARM64).
Zdroj: opennet.ru
