OpenZL 0.2.0

OpenZL 0.2.0 OpenZL 0.2.0

Pas pas gjashtë muajsh zhvillimi, u publikua versioni 0.2.0 i framework-ut OpenZL, i destinuar për krijimin e kompresorëve të dhënash pa humbje.

Framework-u përbëhet nga një bibliotekë bazë dhe mjete për krijimin e kompresorëve të specializuar, të përshkruar në gjuhën SDDL.
Për të krijuar një kompresor të mirë të specializuar, ka dy etapa:

  1. Analiza e të dhënave për të nxjerrë strukturën.
  2. Përdorimi i kompresorëve të mirë backend që përdorin strukturën e marrë për të arritur kompresion të mirë.

OpenZL ofron mjete për të dy etapet.

Projekti është shkruar në gjuhët C dhe C++ dhe shpërndahet sipas licencës BSD.

Ndryshimet kryesore

SDDL2

SDDL është rikonstruktuar plotësisht nga zero për të arritur qëllimet e projektimit të caktuara. Nëse versioni fillestar demo ishte një mjedis ekzekutimi i thjeshtuar, SDDL2 është një kompilator i plotë: parser-i i sintaksës i kalon të dhënat analizuesit semantik, i cili më pas dërgon pemën abstrakte të tipizuar të sintaksës (AST) optimizuesit, dhe optimizuesi menaxhon gjeneruesin e kodit, i cili gjeneron kodin e bytes për mesin virtual.

Rezultati kyç është analiza e menjëhershme e sintaksës. Kur lokacioni i regjistrit mund të përcaktohet plotësisht vetëm nga parametrat dhe konstantet, motorri kalon direkt në çdo fushë, pa skanuar bajtat e mëparshme, duke siguruar akses pa kopjim dhe kapacitet disa GBit/s.

Gjuha vetë ka evoluar së bashku me grupin e mjeteve. Tani ajo mbështet blloqe kur për lokacione kushtore, regjistra të parametrizuar dhe anonim, qasje në anëtarët e fushave të regjistrit dhe gjithashtu operatorë bit për bit dhe logjikë.

Sa i referohet lehtĂ«sisĂ« sĂ« zhvilluesit, faza e analizĂ«s semantike tani zbulon referenca tĂ« paqarta, mospĂ«rputhje tipesh dhe gabime arnosti nĂ« fazĂ«n e kompilimit – me shĂ«nimin e vendndodhjes nĂ« kodin burimor – dhe jo gjatĂ« ekzekutimit, si dhe Ă«shtĂ« lĂ«shuar njĂ« zgjerim pĂ«r VS Code pĂ«r theksimin e sintaksĂ«s sĂ« skedarĂ«ve .sddl.

Kodeku i ri i integruar LZ

Në OpenZL tani është përfshirë kodeku i vet LZ, i prezantuar si ZL_GRAPH_LZ, si edhe profili i kompresimit të vazhdueshëm në utilitarin zli. Puna mbi kodekun vazhdon: është duke u zgjeruar seti i funksioneve dhe duke u rritur performanca në procesimin e të dhënave të vogla. Në këtë moment, ai mbështet funksionalitetin e barabartë me zstd niveli 1, me një madhësi Dritare kompresimi 64 KB.

OpenZL ofron një mundësi për të riprojektuar çdo fazë të konvejrit LZ me qëllim përshpejtimin. Arkitektura e saj grafike gjithashtu lejon kombinimin e fazave të kodimit të entropisë në vend që të përdorë një konveyor të vetëm që është i përshtatshëm për të gjitha skenarët e përdorimit. Më pas disa faza mund të bashkohen në një operacion për të rritur shpejtësinë e përpunimit. Kjo lejon që OpenZL të sigurojë një shkallë kompresimi më të lartë me 10% dhe një shpejtësi nxjerrjeje më të lartë me 70% krahasuar me Zstandard nivel 1 në kabinetin Silesia në testet tona:

KompressorShkalla e kompresimitShpejtësia e kompresimitShpejtësia e nxjerrjes
OpenZL LZ niveli 12.74466 MB/s2288 MB/s
Zstd niveli 1 me madhësi dritare 64K2.74419 MB/s1254 MB/s
Zstd niveli 12.89424 MB/s1345 MB/s

Mbështetje për të dhëna shumë të mëdha hyrëse

zli tani tani mbĂ«shtet pĂ«rpunimin e tĂ« dhĂ«nave tĂ« mĂ«dha hyrĂ«se (me kapacitet disa gigabajtĂ«sh). Para kompresimit, kĂ«to tĂ« dhĂ«na tani ndahen automatikisht nĂ« fragmente me madhĂ«si tĂ« menaxhueshme (default – rreth 16MB), çka lejon tĂ« kufizohet sasia e memories sĂ« pĂ«rdorur, tĂ« rritet lokaliteti i tĂ« dhĂ«nave dhe tĂ« hapen mundĂ«si pĂ«r pĂ«rpunim paralel. NĂ« SDDL2 Ă«shtĂ« realizuar njĂ« funksion i ngjashĂ«m i fragmentimit automatik gjatĂ« punĂ«s me skema. GjatĂ« procesit u krijuan ose u pĂ«rditĂ«suan segmentatorĂ« tĂ« rinj – pĂ«r CSV, Parquet dhe tĂ« dhĂ«na numerike standarde – dhe tĂ« gjithĂ« segmentatorĂ«t tani janĂ« tĂ« serializueshĂ«m dhe tĂ« konfigurueshĂ«m, kĂ«shtu qĂ« renditja e zgjedhur mund tĂ« ruhet nĂ« kompresor dhe tĂ« ripĂ«rdoret mĂ« vonĂ«.

Kjo aplikohet në mënyrë transparente gjatë kompresimit. Ju lutemi vini re se procesi i mësimit është ndryshe dhe mbetet i pandikuar, prandaj ai nuk është i destinuar për të pranuar të dhëna hyrëse gjigante si material mësimor.

Përmirësime në vizualizuesin online të grafit (provo)
Tani vizualizuesi njeh gjurmët e kompresimit dhe çkompresimit nga fillimi deri në fund.

Pana e parashikimit të rrjedhës lejon të shikoni bajtat që kalojnë në secilin brinjë, dhe falë elementeve të kontrolleve të prerjes, edhe rrjedhat e mëdha mbeten të lehta për t'u punuar.

Pana e cilësimeve bashkon të gjitha opsionet e shfaqjes në një vend, dhe një grup i plotë i çelësave të shpejtë - navigimi në drejtime, kalimi rendit, shtrirja dhe tkurrja, zgjedhja e nyjeve - mundëson punën e thjeshtë me mjetin pa mouse.

Tani gjurmĂ«t kanĂ« versione, kompresimi me ndarje nĂ« blloqe shfaqet saktĂ«, dhe zli pĂ«rfundimisht mund tĂ« gjenerojĂ« gjurmĂ«t e veta duke pĂ«rdorur flamujt e rinj —trace dhe —trace-streams-dir.

TĂ« tjera

  • NĂ« katalog janĂ« shtuar disa kodekĂ«. KodekĂ«t Partition dhe bitpack tani pĂ«rdorin dekoder tĂ« bashkuar. Kodeku Floating-point bitsplit ka marrĂ« kodues dhe dekoder tĂ« veçantĂ« pĂ«r formatet fp16, fp32, fp64 dhe bf16 me akcelerime tĂ« specializuara. JanĂ« shtuar ndarjet me konsideratĂ« tĂ« rangut (split_byrange), njĂ« shumĂ«zues gjatĂ«si, kodeku sentinel, graf lz4 dhe disa funksione ndihmĂ«se tĂ« vogla si tryParseInt dhe splitByParam.
  • API Ă«shtĂ« renditur.
  • Testimi fuzzing Ă«shtĂ« pĂ«rmirĂ«suar.
  • Procesi i ndĂ«rtimit dhe paketimit janĂ« pĂ«rmirĂ«suar pĂ«r mĂ« shumĂ« platforma.

Burimi: linux.org.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster