{"id":170618,"date":"2026-05-11T18:24:52","date_gmt":"2026-05-11T16:24:53","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/openzl-0-2-0"},"modified":"2026-05-11T18:24:52","modified_gmt":"2026-05-11T16:24:53","slug":"openzl-0-2-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/lv\/blog\/news\/openzl-0-2-0","title":{"rendered":"OpenZL 0.2.0","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23395\/original.png\">           <img decoding=\"async\" alt=\"OpenZL 0.2.0\" src=\"\/wp-content\/uploads\/2026\/05\/5a95eacd080df4ddd86f1cc2d2af0762.jpg\" style=\"display:block;margin: 0 auto;\" \/>         <\/a>                <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23396\/original.png\">           <img decoding=\"async\" alt=\"OpenZL 0.2.0\" src=\"\/wp-content\/uploads\/2026\/05\/e654044b14efa48eb39324fa8a242458.jpg\" style=\"display:block;margin: 0 auto;\" \/>         <\/a>                                              <noindex>          <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23395\/original.png\" class=\"active\"><\/a><\/noindex>                                                      <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23396\/original.png\"><\/a>                                     <noindex><\/p>\n<p>P\u0113c septi\u0146iem izstr\u0101des m\u0113ne\u0161iem tika izlaista 0.2.0 r\u0101mja versija <a rel=\"nofollow\" href=\"https:\/\/openzl.org\">OpenZL<\/a>, kas paredz\u0113ts bezzaud\u0113jumu datu kompresoru izveidei.<\/p>\n<p><\/noindex> <\/p>\n<p>R\u0101mis sast\u0101v no pamata bibliot\u0113kas un r\u012bkiem specializ\u0113tu kompresoru izveidei, kas aprakst\u012bti valod\u0101 <a rel=\"nofollow\" href=\"https:\/\/openzl.org\/sddl\">SDDL<\/a>.<br \/> Lai izveidotu labu specializ\u0113tu kompresoru, ir divi posmi:<\/p>\n<ol>\n<li>Datu anal\u012bze strukt\u016bras izvilk\u0161anai.<\/li>\n<li>Labas aizmugures kompresoru izmanto\u0161ana, kas izmanto ieg\u016bto strukt\u016bru labas saspie\u0161anas sasnieg\u0161anai.<\/li>\n<\/ol>\n<p>OpenZL nodro\u0161ina r\u012bkus abiem posmiem.<\/p>\n<p>Projekts ir uzrakst\u012bts C un C++ valod\u0101s un tiek izplat\u012bts saska\u0146\u0101 ar BSD licenci.<\/p>\n<h5>Galven\u0101s izmai\u0146as<\/h5>\n<p><strong>SDDL2<\/strong><\/p>\n<p>SDDL ir piln\u012bb\u0101 p\u0101rstr\u0101d\u0101ts no nulles, lai sasniegtu projekt\u0113\u0161anas m\u0113r\u0137us. Ja s\u0101kotn\u0113j\u0101 demonstr\u0101cija p\u0101rst\u0101v\u0113ja vienk\u0101r\u0161u izpildes vidi, tad SDDL2 &ndash; tas ir pilnv\u0113rt\u012bgs kompilators: sintaktiskais analizators nos\u016bta datus semantiskajam analizatoram, tas, savuk\u0101rt, nos\u016bta tipiz\u0113tu abstrakto sintaktisko koku (AST) optimizatoram, un optimizators kontrol\u0113 koda \u0123eneratoru, kas \u0123ener\u0113 virtu\u0101l\u0101s ma\u0161\u012bnas baitkodu.<\/p>\n<p>Pamata rezult\u0101ts ir t\u016bl\u012bt\u0113ja sintakses anal\u012bze. Kad ieraksta atra\u0161an\u0101s vieta var tikt piln\u012bb\u0101 noteikta tikai ar parametriem un konstant\u0113m, meh\u0101nisms p\u0101riet tie\u0161i uz jebkuru lauku, nesken\u0113jot iepriek\u0161\u0113jos baitus, nodro\u0161inot piek\u013cuvi bez kop\u0113\u0161anas un caurlaidsp\u0113ju vair\u0101kos GB\/s.<\/p>\n<p>Pa\u0161ai valodai ir bijusi att\u012bst\u012bba kop\u0101 ar r\u012bku komplektu. Tagad t\u0101 atbalsta when blokiem nosac\u012bt\u0101m atra\u0161an\u0101s viet\u0101m, parametriz\u0113tiem un anon\u012bmiem ierakstiem, piek\u013cuvi ierakstu lauku locek\u013ciem, k\u0101 ar\u012b bitu un lo\u0123iskos operatorus.<\/p>\n<p>Run\u0101jot par izstr\u0101d\u0101t\u0101ju \u0113rt\u012bb\u0101m, semantisk\u0101s anal\u012bzes posms tagad atkl\u0101j nenoteiktas atsauces, tipu neatbilst\u012bbas un arnosti k\u013c\u016bdas kompil\u0101cijas posm\u0101 &ndash; nor\u0101dot atra\u0161anas vietu avota kod\u0101 &ndash; nevis izpildes laik\u0101, k\u0101 ar\u012b ir izlaista VS Code papla\u0161in\u0101jums, lai izceltu .sddl failu sintaksi.<\/p>\n<p><strong>Jaunais ieb\u016bv\u0113tais LZ kodeks<\/strong><\/p>\n<p>OpenZL tagad ietver savu LZ kodeku, kas rea\u0123\u0113 k\u0101 ZL_GRAPH_LZ, k\u0101 ar\u012b sec\u012bgas kompresijas profilu util\u012bt\u0113 zli. Darbs pie kodeka turpin\u0101s: tiek papla\u0161in\u0101ts funkciju kopums un palielin\u0101ta veiktsp\u0113ja nelielu datu apjoma apstr\u0101d\u0113. Pa\u0161laik t\u0101 atbalsta funkcionalit\u0101ti, kas ir ekvivalenta zstd l\u012bmenim 1 ar kompresijas loga izm\u0113ru 64 KB.<\/p>\n<p> <noindex><\/p>\n<p>OpenZL \u013cauj p\u0101rprojekt\u0113t katru LZ cauru\u013cvada posmu, lai uzlabotu \u0101trumu. T\u0101s grafisk\u0101 arhitekt\u016bra ar\u012b \u013cauj apvienot entropijas kod\u0113\u0161anas posmus, nevis izmantot vienu cauru\u013cvadu, kas vien\u0101di labi atbilst visiem lietojuma gad\u012bjumiem. P\u0113c tam vair\u0101kus posmus var apvienot vien\u0101 oper\u0101cij\u0101, lai palielin\u0101tu apstr\u0101des \u0101trumu. Tas \u013cauj OpenZL nodro\u0161in\u0101t par 10% \u0101tr\u0101ku kompresiju un par 70% \u0101tr\u0101ku atpaku\u0161anu sal\u012bdzin\u0101jum\u0101 ar Zstandard l\u012bme\u0146a 1 uz Silesia korpusa testos. <a rel=\"nofollow\" href=\"https:\/\/gist.github.com\/terrelln\/412cda99d1e54126477219cacf38c971\">m\u016bsu testos<\/a>:<\/p>\n<p><\/noindex> <\/p>\n<table>\n<thead>\n<tr>\n<th><strong>Kompresors<\/strong><\/th>\n<th><strong>Kompresijas attiec\u012bba<\/strong><\/th>\n<th><strong>Kompresijas \u0101trums<\/strong><\/th>\n<th><strong>Atpaku\u0161anas \u0101trums<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>OpenZL LZ l\u012bmenis 1<\/td>\n<td>2.74<\/td>\n<td>466 MB\/s<\/td>\n<td>2288 MB\/s<\/td>\n<\/tr>\n<tr>\n<td>Zstd l\u012bmenis 1 ar 64K loga izm\u0113ru<\/td>\n<td>2.74<\/td>\n<td>419 MB\/s<\/td>\n<td>1254 MB\/s<\/td>\n<\/tr>\n<tr>\n<td>Zstd l\u012bmenis 1<\/td>\n<td>2.89<\/td>\n<td>424 MB\/s<\/td>\n<td>1345 MB\/s<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Atbalsts \u013coti lieliem datu apjomiem<\/strong><\/p>\n<p>zli tagad atbalsta milz\u012bgu ievades datu apstr\u0101di (se\u0161u gigabaitu apjom\u0101). Pirms saspie\u0161anas \u0161\u0101di dati tagad autom\u0101tiski tiek dal\u012bti fragmentos ar valsts izm\u0113ru (p\u0113c noklus\u0113juma &ndash; aptuveni 16MB), kas \u013cauj ierobe\u017eot izmantot\u0101s atmi\u0146as apjomu, paaugstin\u0101t datu lokalit\u0101ti un atver iesp\u0113jas paral\u0113lai apstr\u0101dei. SDDL2 ir ieviesta l\u012bdz\u012bga autom\u0101tisk\u0101s fragment\u0113\u0161anas funkcija, str\u0101d\u0101jot saska\u0146\u0101 ar sh\u0113mu. Proces\u0101 tika izveidoti vai atjaunoti jaunie segment\u0113t\u0101ji \u2013 CSV, Parquet un standarta skaitliskajiem datiem \u2013 un visi segment\u0113t\u0101ji tagad ir serializ\u0113jami un piel\u0101gojami, t\u0101p\u0113c izv\u0113l\u0113t\u0101 kompoz\u012bcija var tikt saglab\u0101ta kompresor\u0101 un izmantota v\u0113l\u0101k.<\/p>\n<p>Tas caursp\u012bd\u012bgi tiek pielietots kompresijas laik\u0101. \u0145emiet v\u0113r\u0101, ka m\u0101c\u012bbu cauru\u013cvads ir at\u0161\u0137ir\u012bgs un paliek neskarots, t\u0101p\u0113c tas nav paredz\u0113ts, lai sa\u0146emtu milz\u012bgus datus k\u0101 m\u0101c\u012bbu materi\u0101lu.<\/p>\n<p><strong>Uzlabojumi tie\u0161saistes grafika vizualizator\u0101 (<a rel=\"nofollow\" href=\"https:\/\/openzl.org\/tools\/trace\">izm\u0113\u0123in\u0101t<\/a>)<\/strong><br \/> Tagad vizualizators atpaz\u012bst kompresijas un atpaku\u0161anas izsekojumus no s\u0101kuma l\u012bdz beig\u0101m.<\/p>\n<p>Pl\u016bsmas priek\u0161skat\u012bjuma panelis \u013cauj apskat\u012bt baitus, kas faktiski p\u0101rvietojas pa katru malas, un, pateicoties apgrie\u0161anas kontro\u013cu elementiem, pat lielie pl\u016bsmas paliek viegli apstr\u0101d\u0101jami.<\/p>\n<p>Iestat\u012bjumu panelis apvieno visus att\u0113lo\u0161anas parametrus vienuviet, bet pilns \u0101tro tausti\u0146u kopums \u2013 navig\u0101cija pa virzieniem, sec\u012bga p\u0101rl\u016bko\u0161ana, izv\u0113r\u0161ana un saruk\u0161ana, mezglu izv\u0113le \u2013 \u013cauj \u0113rti str\u0101d\u0101t ar r\u012bku bez peles.<\/p>\n<p>Tagad izseko\u0161anai ir versijas, bloku saspie\u0161ana tiek att\u0113lota pareizi, un zli beidzot var \u0123ener\u0113t savas izseko\u0161anas ar jaunajiem karogiem \u2014trace un \u2014trace-streams-dir.<\/p>\n<p><strong>Da\u017e\u0101di<\/strong><\/p>\n<ul>\n<li>Katalogam pievienoti vair\u0101ki kodeki. Kodeki Partition un bitpack tagad izmanto apvienoto dekoderi. Kodeks Floating-point bitsplit sa\u0146\u0113mis specializ\u0113tus kod\u0113t\u0101jus un dekoderus fp16, fp32, fp64 un bf16 form\u0101tiem ar specializ\u0113tiem pa\u0101trin\u0101jumiem. Pievienots diapazonam atbilsto\u0161s \u0161\u0137el\u0161ana (split_byrange), garuma daudzpleksators, kodeks sentinel, graf lz4 un nelielas pal\u012bgfunkcijas, piem\u0113ram, tryParseInt un splitByParam.<\/li>\n<li>API ir sak\u0101rtots.<\/li>\n<li>Ir uzlabota fuzzing test\u0113\u0161ana.<\/li>\n<li>Ir uzlabots b\u016bv\u0113\u0161anas un iepako\u0161anas process liel\u0101kam platformu skaitam.<\/li>\n<\/ul>\n<p>Avots: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/news\/opensource\/18286976\">linux.org.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e\u0441\u043b\u0435 \u0441\u0435\u043c\u0438 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0432\u044b\u043f\u0443\u0441\u043a 0.2.0 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 OpenZL, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u043e\u0440\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u044c. \u0424\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u043e\u0440\u043e\u0432, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 SDDL. \u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0445\u043e\u0440\u043e\u0448\u0435\u0433\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u043e\u0440\u0430 \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u044d\u0442\u0430\u043f\u0430: \u0410\u043d\u0430\u043b\u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0445\u043e\u0440\u043e\u0448\u0438\u0445 \u0431\u044d\u043a\u0435\u043d\u0434-\u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u043e\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u0445\u043e\u0440\u043e\u0448\u0435\u0433\u043e \u0441\u0436\u0430\u0442\u0438\u044f. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":8,"featured_media":170619,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-170618","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\".\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Erik Peterson\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/lv\/blog\/news\/openzl-0-2-0\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"lv_LV\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47OpenZL 0.2.0 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\".\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/lv\/blog\/news\/openzl-0-2-0\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-05-11T16:24:53+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-05-11T16:24:53+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47OpenZL 0.2.0 | ProHoster","description":".","canonical_url":"https:\/\/prohoster.info\/lv\/blog\/news\/openzl-0-2-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"lv_LV","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47OpenZL 0.2.0 | ProHoster","og:description":".","og:url":"https:\/\/prohoster.info\/lv\/blog\/news\/openzl-0-2-0","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2026-05-11T16:24:53+00:00","article:modified_time":"2026-05-11T16:24:53+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/170618","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/comments?post=170618"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/170618\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media\/170619"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media?parent=170618"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/categories?post=170618"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/tags?post=170618"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}