Sistemi i kompresionit OpenZL, që tejkalon Zstd dhe XZ në shpejtësi dhe nivel kompresimi të të dhënave të strukturuara

Kompania Meta* prezantoi një mjet për kompresimin dhe shpërbërjen e të dhënave OpenZL, i cili, në krahasim me formatet Zstd dhe XZ, tregon një nivel më të lartë kompresimi dhe shpejtësie. OpenZL është zhvilluar për kompresimin efektiv të grupeve të dhënash të strukturuara, për shembull, që përdoren në mësimin makinë, si dhe për magazinat që përmbajnë fusha me lloje informacionesh që përsëriten. Kodi OpenZL është shkruar në C/C++ dhe është i hapur nën licencën BSD.

Kur u kompresua një DB me katalogun astronomik të yjeve SAO, mjeti OpenZL arriti të reduktonte madhësinë e të dhënave me 2.06 herë, ndërsa algoritemi zstd kompresoi informacionin me 1.31 herë, dhe XZ me 1.64 herë. Në të njëjtën kohë, për shpejtësinë e kompresimit, OpenZL tejkaloi zstd me dy herë (203 MB/s kundrejt 115 MB/s), dhe XZ me 65 herë (203 MB/s kundrejt 3.1 MB/s). Shpërbërja në OpenZL doli të ishte pak më e ngadalshme se zstd (822 MB/s kundrejt 890 MB/s) dhe 27 herë më e shpejtë se XZ.

Sistemi i kompresionit OpenZL, që tejkalon Zstd dhe XZ në shpejtësi dhe nivel kompresimi të të dhënave të strukturuara

OpenZL nuk është një algoritem i përgjithshëm dhe tregon rezultate të mira vetëm për të dhënat me strukturë të njohur paraprakisht. Funksionimi i OpenZL përfshin gjenerimin adaptiv të paketuesit bazuar në përshkrimin e dhënave që është dhënë. Si rezultat, formohet kodi për kompresim, i optimizuar për formatin specifik të të dhënave. Për shpërbërje përdoret një shpërbërës universali, i pajtueshëm me të gjithë paketuesit e gjeneruar.

Paketimi dhe shpĂ«rbĂ«rja realizohet me ndihmĂ«n e njĂ« utilitari "zli" ose bibliotekĂ«s libopenzl. Struktura e tĂ« dhĂ«nave pĂ«rshkruhet nĂ« formĂ« profilesh. NjĂ« grup i perfilave tĂ« paracaktuar tashmĂ« pĂ«rfshihet, tĂ« cilĂ«t pĂ«rshkruajnĂ« formatet tipike tĂ« ruajtjes. PĂ«r shembull, njĂ« profil pĂ«r formatin CSV ose tĂ« dhĂ«nat qĂ« ruhen nĂ« formĂ«n e njĂ« vargu tĂ« numrave 64-bit. Kompresimi pĂ«rfshin zgjedhjen e profilit me komandĂ«n "zli list-profiles" dhe nisjen e procesit tĂ« paketimit me komandĂ«n "zli compress —profile emri_profilit". PĂ«r shpĂ«rbĂ«rje, mjafton tĂ« nisni "zli decompress".

PĂ«r formate specifike, kĂ«rkohet tĂ« krijohet njĂ« profil i veçantĂ« duke pĂ«rdorur komandĂ«n „zli train“, e cila identifikon modelet nĂ« tĂ« dhĂ«na dhe formon njĂ« profil me nivelin optimal tĂ« kompresimit. Duke pĂ«rdorur opsionin „—pareto-frontier“, profili i krijuar mund tĂ« modernizohet pĂ«r tĂ« pĂ«rshpejtuar paketimin ose shpĂ«rndarjen, me kushtin e uljes sĂ« nivelit tĂ« kompresimit. PĂ«r tĂ« pĂ«rshkruar formate komplekse me struktura tĂ« ndĂ«rthurura dhe pĂ«r tĂ« pĂ«rcaktuar shpĂ«rndarjen e formateve tĂ« tĂ« dhĂ«nave nĂ« struktura, mund tĂ« pĂ«rdoret gjuha SDDL (Simple Data Description Language).

Metoda e krijimit të paketuesve optimalë bazohet në përdorimin e një seti koduesish primitivë, secili prej të cilëve është më efektiv për lloje dhe sekuenca të veçanta të të dhënave. Për kompresionin, krijohet një graf i orientuar aciklik i përpunimit të të dhënave, ku nodet janë kodekët dhe brinjët janë variantet e të dhënave në formatin e përpunuar. Në varësi të llojit të të dhënave në hyrje, zgjidhet një zinxhir kodekësh që kompreson optimalisht elementin e të dhënave që është marrë. Me këtë organizim, titulli i skedarit kompresohet nga një kodek, fusha me të dhëna të numrave të plotë nga një e dytë, fusha me një numërator në rritje nga një e tretë, dhe fusha me të dhëna tekstuale nga një e katërt.

Sistemi i kompresionit OpenZL, që tejkalon Zstd dhe XZ në shpejtësi dhe nivel kompresimi të të dhënave të strukturuara


Burimi: opennet.ru
Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster