{"id":81936,"date":"2020-05-18T01:42:37","date_gmt":"2020-05-17T23:42:37","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/szhatie-dannyh-v-apache-ignite-opyt-sbera"},"modified":"2020-05-18T01:42:37","modified_gmt":"2020-05-17T23:42:37","slug":"szhatie-dannyh-v-apache-ignite-opyt-sbera","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/szhatie-dannyh-v-apache-ignite-opyt-sbera","title":{"rendered":"Kompresimi i t\u00eb dh\u00ebnave n\u00eb Apache Ignite. Eksperienca e Sberit","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Kompresimi i t\u00eb dh\u00ebnave n\u00eb Apache Ignite. Eksperienca e Sberit\" src=\"\/wp-content\/uploads\/2020\/05\/0e26c686b1f29e88e6be4b8df81ab668.jpg\" style=\"display:block;margin: 0 auto;\" \/>Kur punoni me sasi t\u00eb m\u00ebdha t\u00eb dh\u00ebnash, ndonj\u00ebher\u00eb mund t\u00eb lind\u00eb problemi i munges\u00ebs s\u00eb hap\u00ebsir\u00ebs n\u00eb disqe. Nj\u00eb nga m\u00ebnyrat p\u00ebr t\u00eb zgjidhur k\u00ebt\u00eb problem \u00ebsht\u00eb kompresimi, i cili lejon q\u00eb t\u00eb rritet kapaciteti i ruajtjes n\u00eb t\u00eb nj\u00ebjtin ekip. N\u00eb k\u00ebt\u00eb artikull do t\u00eb shqyrtojm\u00eb se si funksionon kompresimi i t\u00eb dh\u00ebnave n\u00eb Apache Ignite. Artikulli do t\u00eb p\u00ebrshkruaj\u00eb vet\u00ebm metodat e realizuara brenda produktit p\u00ebr kompresimin n\u00eb disk. Metodat e tjera t\u00eb kompresimit t\u00eb t\u00eb dh\u00ebnave (p\u00ebrmes rrjetit, n\u00eb memorie) si t\u00eb realizuara ashtu edhe jo do t\u00eb mbeten jasht\u00eb korniz\u00ebs.<\/p>\n<p>Pra, me modulin e aktivizuar t\u00eb persistence, si rezultat i ndryshimeve t\u00eb t\u00eb dh\u00ebnave n\u00eb cache, Ignite fillon t\u00eb shkruaj\u00eb n\u00eb disk:<\/p>\n<ol>\n<li>P\u00ebrmbajtja e caches<\/li>\n<li>Dita e regjistrimit t\u00eb parashikuesh\u00ebm (Write Ahead Log, m\u00eb pas thjesht WAL)<\/li>\n<\/ol>\n<p>\nP\u00ebr kompresimin e WAL ka nj\u00eb mekaniz\u00ebm q\u00eb ekziston prej koh\u00ebsh, i quajtur kompresimi i WAL. N\u00eb Apache Ignite 2.8 q\u00eb sapo doli n\u00eb treg, u shfaq\u00ebn edhe dy mekanizma q\u00eb lejojn\u00eb kompresimin e t\u00eb dh\u00ebnave n\u00eb disk, kjo \u00ebsht\u00eb kompresimi i faqes s\u00eb diskut p\u00ebr kompresimin e p\u00ebrmbajtjes s\u00eb caches dhe kompresimi i snapshot-it t\u00eb faqes WAL p\u00ebr kompresimin e disa regjistrimeve WAL. M\u00eb posht\u00eb do t\u00eb flasim m\u00eb shum\u00eb p\u00ebr k\u00ebta tre mekanizma.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Kompresimi i faqes s\u00eb diskut<\/h3>\n<p><\/p>\n<h4>Si funksionon<\/h4>\n<p>\nFillimi, le t\u00eb flasim shum\u00eb shkurt p\u00ebr m\u00ebnyr\u00ebn si e ruan Ignite t\u00eb dh\u00ebnat. P\u00ebrdoret memoria me faqe p\u00ebr ruajtje. Madh\u00ebsia e faqes p\u00ebrcaktohet n\u00eb fillim t\u00eb nodit dhe nuk mund t\u00eb ndryshohet n\u00eb faza t\u00eb m\u00ebvonshme; gjithashtu, madh\u00ebsia e faqes duhet t\u00eb jet\u00eb nj\u00eb fuqi e dyshes dhe shum\u00ebfish i madh\u00ebsis\u00eb s\u00eb bllokut t\u00eb sistemit t\u00eb skedar\u00ebve. Faqet ngjiten n\u00eb RAM nga disku sipas nevoj\u00ebs, madh\u00ebsia e t\u00eb dh\u00ebnave n\u00eb disk mund t\u00eb tejkaloj\u00eb v\u00ebllimin e RAM-s\u00eb s\u00eb dedikuar. N\u00eb rast se nuk ka mjaft vend n\u00eb RAM p\u00ebr t\u00eb ngarkuar nj\u00eb faqe nga disku, faqet e vjetra, q\u00eb nuk p\u00ebrdoren m\u00eb, do t\u00eb z\u00ebvend\u00ebsohen nga RAM.<\/p>\n<p>T\u00eb dh\u00ebnat ruhen n\u00eb disk n\u00eb k\u00ebt\u00eb form\u00eb: p\u00ebr \u00e7do parti t\u00eb \u00e7do grupi cache krijohet nj\u00eb skedar i ve\u00e7ant\u00eb, n\u00eb k\u00ebt\u00eb skedar, n\u00eb rendin rrit\u00ebs t\u00eb indeksit, nj\u00ebra pas tjetr\u00ebs ndodhen faqet. Identifikuesi i plot\u00eb i faqes p\u00ebrfshin identifikuesin e grupit cache, numrin e partis\u00eb dhe indeksin e faqes n\u00eb skedar. Prandaj, p\u00ebrmes identifikuesit t\u00eb plot\u00eb t\u00eb faqes, ne mund t\u00eb p\u00ebrcaktojm\u00eb n\u00eb m\u00ebnyr\u00eb unike skedarin dhe offsetin n\u00eb skedar p\u00ebr secil\u00ebn faqe. m\u00eb shum\u00eb rreth struktur\u00ebs s\u00eb memories me faqe mund t\u00eb lexoni n\u00eb artikullin n\u00eb Apache Ignite Wiki: <noindex><a rel=\"nofollow\" href=\"https:\/\/cwiki.apache.org\/confluence\/display\/IGNITE\/Ignite+Persistent+Store+-+under+the+hood\">Ignite Persistent Store \u2014 n\u00ebn kapu\u00e7in<\/a><\/noindex>.<\/p>\n<p>Mekanizmi i kompresimit t\u00eb faqeve t\u00eb diskut, si\u00e7 mund t\u00eb kuptohet nga emri, funksionon n\u00eb nivelin e faqeve. Kur aktivizohet ky mekaniz\u00ebm, puna me t\u00eb dh\u00ebnat n\u00eb RAM b\u00ebhet si\u00e7 \u00ebsht\u00eb, pa asnj\u00eb lloj kompresimi, por n\u00eb momentin e ruajtjes s\u00eb faqeve nga RAM n\u00eb disk, ndodh kompresimi i tyre.<\/p>\n<p>Por kompresimi i secil\u00ebs faqe ve\u00e7 e ve\u00e7 nuk \u00ebsht\u00eb zgjidhje p\u00ebr problemin; duhet t\u00eb gjejm\u00eb nj\u00eb m\u00ebnyr\u00eb p\u00ebr t\u00eb zvog\u00ebluar madh\u00ebsin\u00eb e skedave p\u00ebrfundimtare me t\u00eb dh\u00ebna. N\u00ebse madh\u00ebsia e faqes nuk \u00ebsht\u00eb m\u00eb fikse, nuk mund t\u00eb shkruajm\u00eb faqet n\u00eb sked\u00eb nj\u00ebra pas tjetr\u00ebs, pasi kjo mund t\u00eb sjell\u00eb nj\u00eb s\u00ebr\u00eb problemesh:<\/p>\n<ul>\n<li>Nuk do t\u00eb jemi n\u00eb gjendje t\u00eb llogarisim offset-in p\u00ebrmes indeksit t\u00eb faqes ku ndodhet ajo n\u00eb sked\u00eb.<\/li>\n<li>Nuk \u00ebsht\u00eb e qart\u00eb se \u00e7far\u00eb duhet t\u00eb b\u00ebjm\u00eb me faqet q\u00eb ndodhen jo n\u00eb fund t\u00eb sked\u00ebs dhe ndryshojn\u00eb madh\u00ebsin\u00eb e tyre. N\u00ebse madh\u00ebsia e faqes zvog\u00eblohet, hap\u00ebsira q\u00eb ajo lirohet humbet. N\u00ebse madh\u00ebsia e faqes rritet, nevojitet t\u00eb k\u00ebrkojm\u00eb nj\u00eb vend t\u00eb ri p\u00ebr t\u00eb n\u00eb sked\u00eb.<\/li>\n<li>N\u00ebse faqja zhvendoset n\u00eb nj\u00eb num\u00ebr q\u00eb nuk \u00ebsht\u00eb shum\u00ebfish i madh\u00ebsis\u00eb s\u00eb bllokut t\u00eb sistemit t\u00eb skedar\u00ebve, p\u00ebr ta lexuar ose shkruar at\u00eb do t\u00eb nevojitet t\u00eb preken nj\u00eb bllok m\u00eb shum\u00eb, \u00e7ka mund t\u00eb \u00e7oj\u00eb n\u00eb degradimin e performanc\u00ebs.<\/li>\n<\/ul>\n<p>\nP\u00ebr t\u00eb mos e zgjidhur k\u00ebt\u00eb problem n\u00eb nivelin tuaj, kompresimi i faqeve t\u00eb diskut n\u00eb Apache Ignite p\u00ebrdor nj\u00eb mekaniz\u00ebm t\u00eb sistemit t\u00eb skedar\u00ebve t\u00eb quajtur skedar\u00eb t\u00eb rrall\u00eb. Skedari i rrall\u00eb (sparse) \u00ebsht\u00eb nj\u00eb skedar n\u00eb t\u00eb cilin disa zona t\u00eb mbushura me zero mund t\u00eb sh\u00ebnohen si \"humbje\". K\u00ebshtu, blloket e sistemit t\u00eb skedar\u00ebve p\u00ebr ruajtjen e k\u00ebtyre humbjeve nuk do t\u00eb alokohen, duke arritur k\u00ebshtu nj\u00eb kursim hap\u00ebsire n\u00eb disk.<\/p>\n<p>\u00cbsht\u00eb logjike q\u00eb p\u00ebr t\u00eb liruar nj\u00eb blok t\u00eb sistemit t\u00eb skedar\u00ebve, madh\u00ebsia e vrim\u00ebs duhet t\u00eb jet\u00eb m\u00eb e madhe ose e barabart\u00eb me blokun e sistemit t\u00eb skedar\u00ebve, \u00e7ka v\u00eb nj\u00eb kufizim shtes\u00eb mbi madh\u00ebsin\u00eb e faqeve n\u00eb Apache Ignite: q\u00eb kompresimi t\u00eb ket\u00eb ndonj\u00eb efekt, \u00ebsht\u00eb e nevojshme q\u00eb madh\u00ebsia e faqes t\u00eb jet\u00eb rrept\u00ebsisht m\u00eb e madhe se madh\u00ebsia e blokut t\u00eb sistemit t\u00eb skedar\u00ebve. N\u00ebse madh\u00ebsia e faqes \u00ebsht\u00eb e barabart\u00eb me madh\u00ebsin\u00eb e blokut, ne kurr\u00eb nuk do t\u00eb mund t\u00eb lirojn\u00eb asnj\u00eb bllok, sepse p\u00ebr t\u00eb liruar nj\u00eb bllok t\u00eb vet\u00ebm \u00ebsht\u00eb e nevojshme q\u00eb faqja e kompresuar t\u00eb z\u00ebr\u00eb 0 byte. N\u00ebse madh\u00ebsia e faqes \u00ebsht\u00eb e barabart\u00eb me madh\u00ebsin\u00eb e 2 ose 4 blloqeve, ne tashm\u00eb do t\u00eb mund t\u00eb lirojm\u00eb t\u00eb pakt\u00ebn nj\u00eb bllok n\u00ebse faqja jon\u00eb kompresohet t\u00eb pakt\u00ebn n\u00eb 50% ose 75% p\u00ebrkat\u00ebsisht.<\/p>\n<p>Pra, p\u00ebrmbledhja p\u00ebrfundimtare e funksionimit t\u00eb mekanizmit: Kur shkruhet nj\u00eb faqe n\u00eb disk, b\u00ebhet p\u00ebrpjekje p\u00ebr ta kompresuar faqen. N\u00ebse madh\u00ebsia e faqes s\u00eb kompresuar lejon lirimin e nj\u00eb ose m\u00eb shum\u00eb blloqeve t\u00eb sistemit t\u00eb skedar\u00ebve, faqja shkruhet n\u00eb form\u00eb t\u00eb kompresuar, dhe n\u00eb vendin e blloqeve t\u00eb lira shp\u00ebrthehet nj\u00eb \"vrim\u00eb\" (kryhet thirrja sistemore <code>fallocate()<\/code> me flamurin \u00abpunch hole\u00bb). N\u00ebse dimensioni i faqes s\u00eb tkurrur nuk lejon l\u00ebshimin e blloqeve, faqja ruhet ashtu si\u00e7 \u00ebsht\u00eb, n\u00eb form\u00eb t\u00eb pa tkurrur. T\u00eb gjitha offsetet e faqeve llogariten gjithashtu si pa kompresim, duke shum\u00ebzuar indeksin e faqes me madh\u00ebsin\u00eb e faqes. Nuk k\u00ebrkohet asnj\u00eb relokim i faqeve me forcat e veta. Offsetet e faqeve ashtu si pa kompresim bien brenda kufijve t\u00eb blloqeve t\u00eb sistemit t\u00eb skedarit.<\/p>\n<p><img decoding=\"async\" alt=\"Kompresimi i t\u00eb dh\u00ebnave n\u00eb Apache Ignite. Eksperienca e Sberit\" src=\"\/wp-content\/uploads\/2020\/05\/6a6c6ad83d3b8591f76b9343ff067746.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nN\u00eb realizimin e tanish\u00ebm, Ignite \u00ebsht\u00eb n\u00eb gjendje t\u00eb punoj\u00eb me skedar\u00eb sparse vet\u00ebm n\u00ebn OS Linux, p\u00ebrkat\u00ebsisht kompresimi i faqes s\u00eb diskut mund t\u00eb aktivizohet vet\u00ebm kur p\u00ebrdoret Ignite n\u00eb k\u00ebt\u00eb sistem operativ.<\/p>\n<p>Algoritmet e kompresimit q\u00eb mund t\u00eb p\u00ebrdoren p\u00ebr kompresimin e faqes s\u00eb diskut: ZSTD, LZ4, Snappy. P\u00ebr m\u00eb tep\u00ebr, ka nj\u00eb m\u00ebnyr\u00eb pune (SKIP_GARBAGE), n\u00eb t\u00eb cil\u00ebn vet\u00ebm hidhen vendet e pafshir\u00eb n\u00eb faqe pa aplikuar kompresim n\u00eb t\u00eb dh\u00ebnat e mbetura, q\u00eb lejon t\u00eb zvog\u00eblohet ngarkesa n\u00eb CPU krahasuar me algoritmet e p\u00ebrmendura m\u00eb par\u00eb.<\/p>\n<h4>Ndikimi n\u00eb performanc\u00eb <\/h4>\n<p>\nFatkeq\u00ebsisht nuk kam realizuar matje t\u00eb performanc\u00ebs n\u00eb ambiente reale, pasi nuk parashikohet p\u00ebrdorimi i k\u00ebtij mekanizmi n\u00eb prodhim, por mund t\u00eb diskutojm\u00eb n\u00eb m\u00ebnyr\u00eb teorike se ku do t\u00eb humbim dhe ku do t\u00eb fitonim.<\/p>\n<p>P\u00ebr k\u00ebt\u00eb na nevojitet t\u00eb kujtojm\u00eb se si realizohet leximi dhe shkruarja e faqeve gjat\u00eb qasjes ndaj tyre:<\/p>\n<ul>\n<li>Kur kryhet operacioni i leximit, fillimisht k\u00ebrkohet n\u00eb RAM; n\u00ebse k\u00ebrkimi d\u00ebshtoi, faqja ngarkohet n\u00eb RAM nga disku nga t\u00eb nj\u00ebjtin proces q\u00eb kryen leximin.<\/li>\n<li>Kur kryhet operacioni i shkruarjes, faqja n\u00eb RAM d\u00ebshmohet si e ndyr\u00eb, nd\u00ebrkoh\u00eb q\u00eb ruajtja fizike e faqes n\u00eb disk nuk ndodh menj\u00ebher\u00eb n\u00eb procesin q\u00eb realizon shkruarjen. T\u00eb gjitha faqet e ndyr\u00eb ruhen n\u00eb disk m\u00eb von\u00eb gjat\u00eb procesit t\u00eb pik\u00eb-kontrollit nga procese t\u00eb ndara.<\/li>\n<\/ul>\n<p>\nPra, ndikimi n\u00eb operacionet e leximit:<\/p>\n<ul>\n<li>Pozitiv (disk IO), p\u00ebr shkak t\u00eb reduktimit t\u00eb numrit t\u00eb blloqeve t\u00eb lexuar nga sistemi i skedar\u00ebve.<\/li>\n<li>Negative (CPU), due to the additional load required by the operating system to work with sparse files. It is also possible that additional IO operations will implicitly occur to save the more complex structure of the sparse file (I am unfortunately not familiar with all the details of how sparse files work).<\/li>\n<li>Negative (CPU), due to the need to decompress pages.<\/li>\n<li>There is no impact on write operations.<\/li>\n<li>Effect on the checkpoint process (here everything is similar to read operations):<\/li>\n<li>Positive (disk IO), due to the reduction in the number of blocks written to the file system.<\/li>\n<li>Negative (CPU, possibly disk IO), due to working with sparse files.<\/li>\n<li>Negative (CPU), due to the need to compress pages.<\/li>\n<\/ul>\n<p>\nWhich side of the scale will tip? This largely depends on the environment, but I lean towards the belief that disk page compression will lead to performance degradation in most systems. Moreover, tests on other databases using a similar approach with sparse files show a decrease in performance when compression is enabled.<\/p>\n<h4>How to enable and configure<\/h4>\n<p>\nSi\u00e7 \u00ebsht\u00eb p\u00ebrmendur m\u00eb par\u00eb, versioni minimal i Apache Ignite q\u00eb mb\u00ebshtet kompresimin e faqeve t\u00eb diskut \u00ebsht\u00eb 2.8 dhe mb\u00ebshtetet vet\u00ebm nga sistemi operativ Linux. Aktivimi dhe konfigurimi realizohen si m\u00eb posht\u00eb:<\/p>\n<ul>\n<li>N\u00eb class-path duhet t\u00eb jet\u00eb moduli ignite-compression. N\u00eb default, ai ndodhet n\u00eb shp\u00ebrndarjen e Apache Ignite n\u00eb katalogun libs\/optional dhe nuk p\u00ebrfshihet n\u00eb class-path. Mund ta transferoni thjesht katalogun nj\u00eb nivel lart n\u00eb libs dhe at\u00ebher\u00eb, gjat\u00eb ekzekutimit p\u00ebrmes ignite.sh, do t\u00eb p\u00ebrfshihet automatikisht.<\/li>\n<li>Persistenca duhet t\u00eb jet\u00eb e mund\u00ebsuar (Aktivizohet p\u00ebrmes <code>DataRegionConfiguration.setPersistenceEnabled(true))<\/code>.<\/li>\n<li>K\u00ebndi i faqes duhet t\u00eb jet\u00eb m\u00eb i madh se madh\u00ebsia e bllokut t\u00eb sistemit t\u00eb skedar\u00ebve (mund t\u00eb p\u00ebrcaktohet p\u00ebrmes <code>DataStorageConfiguration.setPageSize()<\/code> ).<\/li>\n<li>P\u00ebr \u00e7do cache, t\u00eb dh\u00ebnat e t\u00eb cilit duhet t\u00eb kompresohen, \u00ebsht\u00eb e nevojshme t\u00eb konfigurohet metoda e kompresimit dhe (opsionale) niveli i kompresimit n\u00eb konfiguracion (metodat <code>CacheConfiguration.setDiskPageCompression(), CacheConfiguration.setDiskPageCompressionLevel()<\/code>).<\/li>\n<\/ul>\n<p><\/p>\n<h3>Kompaktimi i WAL<\/h3>\n<p><\/p>\n<h4>Si funksionon<\/h4>\n<p>\n\u00c7far\u00eb \u00ebsht\u00eb WAL dhe p\u00ebrse \u00ebsht\u00eb e nevojshme? Shum\u00eb shkurt: \u00ebsht\u00eb nj\u00eb regjist\u00ebr ku regjistrohen t\u00eb gjitha ngjarjet q\u00eb ndyshojn\u00eb n\u00eb fund depozitimin e faqes. Ai \u00ebsht\u00eb i nevojsh\u00ebm kryesisht p\u00ebr mund\u00ebsin\u00eb e rikuperimit n\u00eb rast r\u00ebnieje. \u00c7do operacion, para se t'i jap\u00eb kontrollin p\u00ebrdoruesit, duhet fillimisht t\u00eb regjistroj\u00eb nj\u00eb ngjarje n\u00eb WAL, n\u00eb m\u00ebnyr\u00eb q\u00eb n\u00eb rast r\u00ebnieje t\u00eb ket\u00eb mund\u00ebsi t\u00eb riprodhoj\u00eb n\u00ebp\u00ebrmjet regjistrit dhe t\u00eb rikuperoj\u00eb t\u00eb gjith\u00eb operacionet p\u00ebr t\u00eb cilat p\u00ebrdoruesi ka marr\u00eb nj\u00eb p\u00ebrgjigje t\u00eb suksesshme, edhe n\u00ebse k\u00ebto operacione nuk kan\u00eb arritur t\u00eb reflektohen n\u00eb depozitimin e faqes n\u00eb disk (m\u00eb sip\u00ebr \u00ebsht\u00eb p\u00ebrshkruar se regjistrimi efektiv n\u00eb depozitimin e faqes realizohet n\u00eb nj\u00eb proces t\u00eb quajtur \"checkpoint\" me nj\u00eb vones\u00eb nga disa rrjedha t\u00eb ve\u00e7anta).<\/p>\n<p>Sh\u00ebnimet n\u00eb WAL ndahen n\u00eb logjike dhe fizike. Logjike jan\u00eb vet\u00eb \u00e7el\u00ebsat dhe vlerat. Fizike pasqyrojn\u00eb ndryshimet e faqeve n\u00eb magazin\u00ebn e faqeve. N\u00ebse sh\u00ebnimet logjike mund t\u00eb jen\u00eb t\u00eb dobishme p\u00ebr raste t\u00eb tjera, sh\u00ebnimet fizike jan\u00eb t\u00eb nevojshme vet\u00ebm p\u00ebr rikuperimin n\u00eb rast t\u00eb r\u00ebnies dhe k\u00ebrkojn\u00eb sh\u00ebnime vet\u00ebm nga pika e fundit e suksesshme t\u00eb kontrollit. K\u00ebtu nuk do t\u00eb thellohemi n\u00eb detaje dhe t\u00eb shpjegojm\u00eb pse kjo funksionon k\u00ebshtu, por ata q\u00eb jan\u00eb t\u00eb interesuar mund t\u00eb referohen n\u00eb artikullin e p\u00ebrmendur m\u00eb par\u00eb n\u00eb Apache Ignite Wiki: <noindex><a rel=\"nofollow\" href=\"https:\/\/cwiki.apache.org\/confluence\/display\/IGNITE\/Ignite+Persistent+Store+-+under+the+hood\">Ignite Persistent Store \u2014 n\u00ebn kapu\u00e7in<\/a><\/noindex>.<\/p>\n<p>\u041d\u0430 \u043e\u0434\u043d\u0443 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c \u0447\u0430\u0441\u0442\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439. \u0422\u043e \u0435\u0441\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0434\u043d\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f put \u0432 \u043a\u044d\u0448 \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0432 \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 (\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0441 \u0441\u0430\u043c\u0438\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438, \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0441 free-list&#8217;\u0430\u043c\u0438). \u041d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0438\u043d\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0442\u0435\u0441\u0442\u0430\u0445 \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u0438 \u0434\u043e 90% \u043e\u0431\u044a\u0435\u043c\u0430 WAL \u0444\u0430\u0439\u043b\u0430. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0443\u0436\u043d\u044b \u043e\u043d\u0438 \u043e\u0447\u0435\u043d\u044c \u043d\u0435\u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043c\u0435\u0436\u0434\u0443 \u0447\u0435\u043a\u043f\u043e\u0438\u043d\u0442\u0430\u043c\u0438 \u2014 3 \u043c\u0438\u043d\u0443\u0442\u044b). \u041b\u043e\u0433\u0438\u0447\u043d\u043e \u0431\u044b\u043b\u043e-\u0431\u044b \u043e\u0442 \u044d\u0442\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0442\u0435\u0440\u0438 \u0438\u0445 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438\u0437\u0431\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f. \u0418\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c WAL compaction, \u0438\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0442 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0438 \u0441\u0436\u0438\u043c\u0430\u0435\u0442 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e zip \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044f \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u0438, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u0430 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e (\u0438\u043d\u043e\u0433\u0434\u0430 \u0432 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0440\u0430\u0437).<\/p>\n<p>WAL fizikisht p\u00ebrb\u00ebhet nga disa segmente (p\u00ebr default 10) me madh\u00ebsi fikse (p\u00ebr default 64MB), t\u00eb cilat rip\u00ebrzihen n\u00eb m\u00ebnyr\u00eb ciklike. Sa her\u00eb q\u00eb segmenti aktual mbushet, i caktohet segmenti pasues, dhe segmenti i mbushur kopjohet n\u00eb arkiv me nj\u00eb rrjedh\u00eb t\u00eb ve\u00e7ant\u00eb. Kompaktimi i WAL tashm\u00eb punon me segmentet arkivore. Gjithashtu, n\u00eb nj\u00eb rrjedh\u00eb t\u00eb ve\u00e7ant\u00eb, ai ndjek realizimin e pik\u00ebs kontrolli dhe fillon kompresimin p\u00ebr segmentet arkivore, p\u00ebr t\u00eb cilat regjistrimet fizike nuk jan\u00eb m\u00eb t\u00eb nevojshme.<\/p>\n<p><img decoding=\"async\" alt=\"Kompresimi i t\u00eb dh\u00ebnave n\u00eb Apache Ignite. Eksperienca e Sberit\" src=\"\/wp-content\/uploads\/2020\/05\/ca8690ba7a350df9530f2ccf01c90975.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <\/p>\n<h4>Ndikimi n\u00eb performanc\u00eb<\/h4>\n<p>\nDuke qen\u00eb se kompaktimi i WAL punon n\u00eb nj\u00eb rrjedh\u00eb t\u00eb ve\u00e7ant\u00eb, nuk duhet t\u00eb ket\u00eb ndikim t\u00eb drejtp\u00ebrdrejt\u00eb n\u00eb operacionet q\u00eb ekzekutohen. Megjithat\u00eb, ai jep nj\u00eb ngarkes\u00eb shtes\u00eb n\u00eb sfond p\u00ebr CPU (kompresimi) dhe diskun (leximi i \u00e7do segmenti WAL nga arkiva dhe shkruajti i segmenteve t\u00eb kompresuar), prandaj n\u00ebse sistemi punon n\u00eb kufijt\u00eb e mund\u00ebsive, ai gjithashtu do t\u00eb \u00e7oj\u00eb n\u00eb degradimin e performanc\u00ebs.<\/p>\n<h4>How to enable and configure<\/h4>\n<p>\nMund t\u00eb aktivizoni kompaktimin e WAL me an\u00eb t\u00eb pron\u00ebs <code>WalCompactionEnabled<\/code> n\u00eb <code>DataStorageConfiguration (DataStorageConfiguration.setWalCompactionEnabled(true)<\/code>). Gjithashtu, me metod\u00ebn DataStorageConfiguration.setWalCompactionLevel() mund t\u00eb p\u00ebrcaktoni nivelin e kompresimit, n\u00ebse nuk jeni t\u00eb k\u00ebnaqur me vler\u00ebn e paracaktuar (BEST_SPEED).<\/p>\n<h3>Kompresimi i snapshot-it t\u00eb faqes WAL<\/h3>\n<p><\/p>\n<h4>Si funksionon<\/h4>\n<p>\nKemi zbuluar tashm\u00eb se regjistrimet WAL ndahen n\u00eb logjike dhe fizike. P\u00ebr \u00e7do ndryshim n\u00eb secil\u00ebn faqe n\u00eb memorien e faqes krijohet nj\u00eb regjist\u00ebr fizik WAL. Regjistrimet fizike po ashtu ndahen n\u00eb dy n\u00ebnkategorit\u00eb: regjistri i snapshots t\u00eb faqeve dhe regjistri delta. \u00c7do her\u00eb q\u00eb ndryshojm\u00eb di\u00e7ka n\u00eb faqe dhe e \u00e7ojm\u00eb at\u00eb nga nj\u00eb gjendje t\u00eb past\u00ebr n\u00eb nj\u00eb t\u00eb ndotur, n\u00eb WAL ruhet nj\u00eb kopje e plot\u00eb e k\u00ebsaj faqeje (regjistri i snapshots t\u00eb faqeve). Edhe n\u00ebse ne kemi ndryshuar vet\u00ebm nj\u00eb byte, n\u00eb WAL do t\u00eb ruhet nj\u00eb regjist\u00ebr q\u00eb \u00ebsht\u00eb pak m\u00eb i madh se madh\u00ebsia e faqes. N\u00ebse ndryshojm\u00eb di\u00e7ka n\u00eb nj\u00eb faqe q\u00eb tashm\u00eb \u00ebsht\u00eb e ndotur, at\u00ebher\u00eb n\u00eb WAL formohet regjistri delta, n\u00eb t\u00eb cilin jan\u00eb reflektuar vet\u00ebm ndryshimet krahasuar me gjendjen e m\u00ebparshme t\u00eb faqes, por jo e gjith\u00eb faqja. Duke qen\u00eb se rinovimi i gjendjeve t\u00eb faqeve nga e ndotura n\u00eb t\u00eb past\u00ebr realizohet gjat\u00eb procesit t\u00eb kontrollit, menj\u00ebher\u00eb pas fillimit t\u00eb kontrollit praktikisht t\u00eb gjith\u00eb regjistrat fizik\u00eb do t\u00eb p\u00ebrb\u00ebhen vet\u00ebm nga snapshots t\u00eb faqeve (sepse t\u00eb gjitha faqet menj\u00ebher\u00eb pas fillimit t\u00eb kontrollit jan\u00eb t\u00eb pastra). M\u00eb pas, nd\u00ebrsa afrohemi drejt kontrollit tjet\u00ebr, shuma e regjistrave delta fillon t\u00eb rritet dhe p\u00ebrs\u00ebri ri-inizializohet n\u00eb fillimin e kontrollit tjet\u00ebr. Matjet n\u00eb disa teste sintetike kan\u00eb treguar se shuma e snapshots t\u00eb faqeve n\u00eb v\u00ebllimin e p\u00ebrgjithsh\u00ebm t\u00eb regjistrave fizik\u00eb arrin n\u00eb 90%.<\/p>\n<p>Ideja e kompresimit t\u00eb snapshot-eve t\u00eb faqes WAL q\u00ebndron n\u00eb kompresimin e snapshot-eve t\u00eb faqeve duke p\u00ebrdorur nj\u00eb mjet tashm\u00eb t\u00eb gatsh\u00ebm p\u00ebr kompresim (shih kompresimin e faqeve t\u00eb diskut). K\u00ebshtu, n\u00eb regjistrimet e WAL ruhet nj\u00ebpasnj\u00ebrisht n\u00eb nj\u00eb m\u00ebnyr\u00eb append-only dhe nuk ka nevoj\u00eb p\u00ebr lidhjen e regjistrimeve me kufijt\u00eb e blloqeve t\u00eb sistemit t\u00eb skedar\u00ebve, prandaj k\u00ebtu, ndryshe nga mekanizmi i kompresimit t\u00eb faqeve t\u00eb diskut, nuk kemi nevoj\u00eb p\u00ebr skedar\u00eb sparse, k\u00ebshtu q\u00eb ky mekaniz\u00ebm do t\u00eb funksionoj\u00eb jo vet\u00ebm n\u00eb OS Linux. P\u00ebr m\u00eb tep\u00ebr, nuk \u00ebsht\u00eb e r\u00ebnd\u00ebsishme se sa shum\u00eb arrit\u00ebm t\u00eb comprimojm\u00eb faqen. Edhe n\u00ebse \u00e7lirojm\u00eb 1 byte, kjo \u00ebsht\u00eb nj\u00eb rezultat pozitiv dhe ne mund t\u00eb ruajm\u00eb t\u00eb dh\u00ebnat e kompresuara n\u00eb WAL, ndryshe nga kompresimi i faqeve t\u00eb diskut, ku ruajm\u00eb faqen e kompresuar vet\u00ebm n\u00ebse \u00e7liruar m\u00eb shum\u00eb se 1 bllok t\u00eb sistemit t\u00eb skedar\u00ebve.<\/p>\n<p>Faqet \u2014 jan\u00eb t\u00eb dh\u00ebna q\u00eb kompresohen mir\u00eb, pjesa e tyre n\u00eb volumin e p\u00ebrgjithsh\u00ebm t\u00eb WAL \u00ebsht\u00eb shum\u00eb e lart\u00eb, k\u00ebshtu q\u00eb, duke mos ndryshuar formatin e skedarit WAL, mund t\u00eb arrijm\u00eb nj\u00eb reduktim t\u00eb r\u00ebnd\u00ebsish\u00ebm t\u00eb madh\u00ebsis\u00eb s\u00eb tij. Kompresimi, p\u00ebrfshir\u00eb regjistrat logjik\u00eb, do t\u00eb k\u00ebrkonte nj\u00eb ndryshim t\u00eb formatit dhe humbje t\u00eb kompatibilitetit, p\u00ebr shembull, p\u00ebr konsumator\u00ebt e jasht\u00ebm, t\u00eb cil\u00ebve mund t'u interesojn\u00eb regjistrat logjik\u00eb, pa sjell\u00eb nj\u00eb ulje t\u00eb dukshme t\u00eb volumin t\u00eb skedarit.<\/p>\n<p>Ashtu si p\u00ebr kompresimin e faqeve disk, p\u00ebr kompresimin e skenave t\u00eb faqeve WAL mund t\u00eb p\u00ebrdoren algoritme kompresimi ZSTD, LZ4, Snappy, si dhe moda SKIP_GARBAGE.<\/p>\n<h4>Ndikimi n\u00eb performanc\u00eb<\/h4>\n<p>\nSi\u00e7 \u00ebsht\u00eb e leht\u00eb t\u00eb v\u00ebrehet, aktivizimi i drejtp\u00ebrdrejt\u00eb i kompresimit t\u00eb skenave t\u00eb faqeve WAL ndikon vet\u00ebm n\u00eb rrjedhat q\u00eb shkruajn\u00eb t\u00eb dh\u00ebna n\u00eb memory page, dometh\u00ebn\u00eb n\u00eb ato rrjedha q\u00eb ndryshojn\u00eb t\u00eb dh\u00ebnat n\u00eb cache. Leximi i regjistrave fizik\u00eb WAL ndodh vet\u00ebm nj\u00eb her\u00eb, n\u00eb momentin e ngjitjes s\u00eb nodit pas r\u00ebnies (dhe vet\u00ebm n\u00eb rastin e r\u00ebnies gjat\u00eb kontrollit).<\/p>\n<p>P\u00ebrfluxet q\u00eb ndryshojn\u00eb t\u00eb dh\u00ebnat ndikojn\u00eb k\u00ebshtu: ne marrim nj\u00eb efekt negativ (CPU) p\u00ebr shkak t\u00eb nevoj\u00ebs p\u00ebr t\u00eb kompresuar faqen p\u00ebrpara se ta shkruajm\u00eb n\u00eb disk dhe nj\u00eb efekt pozitiv (disk IO) p\u00ebr shkak t\u00eb reduktimit t\u00eb sasis\u00eb s\u00eb t\u00eb dh\u00ebnave q\u00eb shkruhen. Prandaj, k\u00ebtu \u00ebsht\u00eb e thjesht\u00eb; n\u00ebse performanca e sistemit \u00ebsht\u00eb e varur nga CPU, kemi nj\u00eb degradim t\u00eb vog\u00ebl, nd\u00ebrsa n\u00ebse \u00ebsht\u00eb e varur nga hyrja\/dalja diskore, kemi nj\u00eb rritje.<\/p>\n<p>Indirekt, zvog\u00eblimi i madh\u00ebsis\u00eb s\u00eb WAL gjithashtu ndikon (pozitivisht) n\u00eb ato flukse q\u00eb hedhin n\u00eb arkiv segmentet e WAL dhe n\u00eb flukset e kompresimit t\u00eb WAL.<\/p>\n<p>Testet e v\u00ebrteta t\u00eb performanc\u00ebs n\u00eb mjedisin ton\u00eb me t\u00eb dh\u00ebna sintetik\u00eb treguan nj\u00eb rritje t\u00eb vog\u00ebl (transmetimi u rrit me 10%-15%, nd\u00ebrsa latenca u zvog\u00eblua me 10%-15%).<\/p>\n<h4>How to enable and configure<\/h4>\n<p>\nVersioni minimal i Apache Ignite: 2.8. Aktivizimi dhe konfigurimi b\u00ebhet si m\u00eb posht\u00eb:<\/p>\n<ul>\n<li>N\u00eb class-path duhet t\u00eb jet\u00eb moduli ignite-compression. N\u00eb default, ai ndodhet n\u00eb shp\u00ebrndarjen e Apache Ignite n\u00eb katalogun libs\/optional dhe nuk p\u00ebrfshihet n\u00eb class-path. Mund ta transferoni thjesht katalogun nj\u00eb nivel lart n\u00eb libs dhe at\u00ebher\u00eb, gjat\u00eb ekzekutimit p\u00ebrmes ignite.sh, do t\u00eb p\u00ebrfshihet automatikisht.<\/li>\n<li>Persistenca duhet t\u00eb jet\u00eb e mund\u00ebsuar (Aktivizohet p\u00ebrmes <code>DataRegionConfiguration.setPersistenceEnabled(true)<\/code>).<\/li>\n<li>Duhet t\u00eb caktohet nj\u00eb m\u00ebnyr\u00eb kompresimi me an\u00eb t\u00eb metod\u00ebs <code>DataStorageConfiguration.setWalPageCompression()<\/code>, si parazgjedhje kompresimi \u00ebsht\u00eb i \u00e7aktivizuar (nata DISABLED).<\/li>\n<li>Opsionalisht, mund t\u00eb caktosh shkall\u00ebn e kompresimit me an\u00eb t\u00eb metod\u00ebs <code>DataStorageConfiguration.setWalPageCompression()<\/code>, vlerat e pranueshme p\u00ebr secil\u00ebn nga m\u00ebnyrat mund t\u00eb shihen n\u00eb javadoc t\u00eb metod\u00ebs.<\/li>\n<\/ul>\n<p><\/p>\n<h3>P\u00ebrfundimi<\/h3>\n<p>\nMekanizmat e shqyrtuar t\u00eb kompresimit t\u00eb t\u00eb dh\u00ebnave n\u00eb Apache Ignite mund t\u00eb p\u00ebrdoren n\u00eb m\u00ebnyr\u00eb t\u00eb pavarur nga nj\u00ebri-tjetri, por gjithashtu jan\u00eb t\u00eb pranueshme \u00e7do kombinim i tyre. Kuptimi i parimeve t\u00eb funksionimit t\u00eb tyre do t\u00eb lejoj\u00eb t\u00eb p\u00ebrcaktohet se sa mir\u00eb i p\u00ebrshtaten detyrave tuaja n\u00eb ambientin tuaj dhe \u00e7far\u00eb do t\u00eb duhet t\u00eb sakrifikoni gjat\u00eb p\u00ebrdorimit t\u00eb tyre. Kompresimi i faqeve disk \u00ebsht\u00eb i destinuar p\u00ebr kompresimin e ruajtjes kryesore dhe mund t\u00eb ofroj\u00eb nj\u00eb shkall\u00eb mesatare t\u00eb kompresimit. Kompresimi i snapshots t\u00eb faqeve WAL do t\u00eb ofroj\u00eb nj\u00eb shkall\u00eb mesatare t\u00eb kompresimit p\u00ebr skedar\u00ebt WAL, p\u00ebr m\u00eb tep\u00ebr, ka t\u00eb ngjar\u00eb ta p\u00ebrmir\u00ebsoj\u00eb performanc\u00ebn. Kompaktimi WAL nuk do t\u00eb ndikoj\u00eb pozitivisht n\u00eb performanc\u00eb, por do t\u00eb reduktoj\u00eb sa m\u00eb shum\u00eb q\u00eb t\u00eb jet\u00eb e mundur madh\u00ebsin\u00eb e skedar\u00ebve WAL duke eliminuar regjistrimet fizike.<br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/sberbank\/blog\/502136\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u043e\u0431\u044a\u0435\u043c\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u043d\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u0435\u0442 \u043e\u0441\u0442\u0440\u043e \u0432\u0441\u0442\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0438 \u043c\u0435\u0441\u0442\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a\u0430\u0445. \u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0436\u0430\u0442\u0438\u0435, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443, \u043d\u0430 \u0442\u043e\u043c \u0436\u0435 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0438, \u043c\u043e\u0436\u043d\u043e \u0441\u0435\u0431\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043e\u0431\u044a\u0435\u043c\u044b \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u0436\u0430\u0442\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Apache Ignite. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0443\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":81937,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-81936","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u043e\u0431\u044a\u0435\u043c\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u043d\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u0435\u0442 \u043e\u0441\u0442\u0440\u043e \u0432\u0441\u0442\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0438 \u043c\u0435\u0441\u0442\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a\u0430\u0445. \u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0436\u0430\u0442\u0438\u0435, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443, \u043d\u0430 \u0442\u043e\u043c \u0436\u0435 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0438, \u043c\u043e\u0436\u043d\u043e \u0441\u0435\u0431\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043e\u0431\u044a\u0435\u043c\u044b \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u0436\u0430\u0442\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Apache Ignite. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0443\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/szhatie-dannyh-v-apache-ignite-opyt-sbera\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\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\udd47\u0421\u0436\u0430\u0442\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Apache Ignite. \u041e\u043f\u044b\u0442 \u0421\u0431\u0435\u0440\u0430 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u043e\u0431\u044a\u0435\u043c\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u043d\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u0435\u0442 \u043e\u0441\u0442\u0440\u043e \u0432\u0441\u0442\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0438 \u043c\u0435\u0441\u0442\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a\u0430\u0445. \u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0436\u0430\u0442\u0438\u0435, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443, \u043d\u0430 \u0442\u043e\u043c \u0436\u0435 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0438, \u043c\u043e\u0436\u043d\u043e \u0441\u0435\u0431\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043e\u0431\u044a\u0435\u043c\u044b \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u0436\u0430\u0442\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Apache Ignite. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0443\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/szhatie-dannyh-v-apache-ignite-opyt-sbera\" \/>\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=\"2020-05-17T23:42:37+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-17T23:42:37+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\udd47Kompresimi i t\u00eb dh\u00ebnave n\u00eb Apache Ignite. Eksperienca e Sberbank | ProHoster","description":"Kur punoni me sasi t\u00eb m\u00ebdha t\u00eb dh\u00ebnash, ndonj\u00ebher\u00eb mund t\u00eb lind\u00eb problemin e munges\u00ebs s\u00eb hap\u00ebsir\u00ebs n\u00eb disqe. Nj\u00eb nga m\u00ebnyrat p\u00ebr t\u00eb zgjidhur k\u00ebt\u00eb problem \u00ebsht\u00eb kompresimi, fal\u00eb t\u00eb cilit, n\u00eb t\u00eb nj\u00ebjt\u00ebn pajisje, mund t\u00eb lejoni rritjen e kapacitetit t\u00eb ruajtjes. N\u00eb k\u00ebt\u00eb artikull, ne do t\u00eb shqyrtojm\u00eb si funksionon kompresimi i t\u00eb dh\u00ebnave n\u00eb Apache Ignite. Artikulli do t\u00eb p\u00ebrshkruaj\u00eb vet\u00ebm ata q\u00eb jan\u00eb realizuar brenda produktit.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/szhatie-dannyh-v-apache-ignite-opyt-sbera","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","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\udd47\u0421\u0436\u0430\u0442\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Apache Ignite. \u041e\u043f\u044b\u0442 \u0421\u0431\u0435\u0440\u0430 | ProHoster","og:description":"\u041f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u043e\u0431\u044a\u0435\u043c\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u043d\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u0435\u0442 \u043e\u0441\u0442\u0440\u043e \u0432\u0441\u0442\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0438 \u043c\u0435\u0441\u0442\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a\u0430\u0445. \u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0436\u0430\u0442\u0438\u0435, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443, \u043d\u0430 \u0442\u043e\u043c \u0436\u0435 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0438, \u043c\u043e\u0436\u043d\u043e \u0441\u0435\u0431\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043e\u0431\u044a\u0435\u043c\u044b \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u0436\u0430\u0442\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Apache Ignite. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0443\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/szhatie-dannyh-v-apache-ignite-opyt-sbera","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":"2020-05-17T23:42:37+00:00","article:modified_time":"2020-05-17T23:42:37+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"81936","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 15:47:30","updated":"2022-10-02 17:21:32"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/81936","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=81936"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/81936\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/81937"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=81936"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=81936"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=81936"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}