{"id":36205,"date":"2019-10-31T22:10:16","date_gmt":"2019-10-31T19:10:16","guid":{"rendered":"https:\/\/prohoster.info\/blog\/razbor-zadach-s-konferentsii-hydra-balansirovka-nagruzki-i-in-memory-hranilishha\/"},"modified":"2019-10-31T22:10:16","modified_gmt":"2019-10-31T19:10:16","slug":"razbor-zadach-s-konferentsii-hydra-balansirovka-nagruzki-i-in-memory-hranilishha","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/razbor-zadach-s-konferentsii-hydra-balansirovka-nagruzki-i-in-memory-hranilishha","title":{"rendered":"Analiza e detyrave nga konferenca Hydra \u2014 balancimi i ngarkes\u00ebs dhe ruajtja n\u00eb memorie","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Disa dit\u00eb m\u00eb par\u00eb ndodhi <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.com\">konferenca Hydra<\/a><\/noindex>. Djemt\u00eb nga JUG.ru Group ftuan fol\u00ebs t\u00eb \u00ebndrrave (Leslie Lamport! Cliff Click! Martin Kleppmann!) dhe i kushtuan dy dit\u00eb sistemeve t\u00eb shp\u00ebrndara dhe llogaritjeve. Kontur ishte nj\u00eb nga tre partner\u00ebt e konferenc\u00ebs. Ne biseduam n\u00eb stend\u00eb, treguam p\u00ebr ruajt\u00ebsit tan\u00eb t\u00eb shp\u00ebrndar\u00eb, luajt\u00ebm bingo dhe zgjidh\u00ebm detyra.<\/p>\n<p><\/p>\n<p>Ky \u00ebsht\u00eb nj\u00eb postim me analiz\u00ebn e detyrave n\u00eb stend\u00ebn e Konturit nga autori i tekstit. Ata q\u00eb ishin n\u00eb Hydra \u2014 kjo \u00ebsht\u00eb arsye p\u00ebr t'u rikujtuar p\u00ebrvojat e k\u00ebndshme, ata q\u00eb nuk ishin \u2014 nj\u00eb mund\u00ebsi p\u00ebr t\u00eb ushtruar mendjen. <em>big O<\/em>-notacionit. <\/p>\n<p><\/p>\n<p>Ishte edhe nj\u00eb pjes\u00ebmarr\u00ebs q\u00eb ndau flipchart n\u00eb slida p\u00ebr t\u00eb shkruar zgjidhjen e tij. Nuk po shaka \u2014 ata dor\u00ebzuan p\u00ebr kontroll nj\u00eb paket\u00eb t\u00eb till\u00eb letre:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Analiza e detyrave nga konferenca Hydra \u2014 balancimi i ngarkes\u00ebs dhe ruajtja n\u00eb memorie\" src=\"\/wp-content\/uploads\/2019\/07\/4b74e8bc33e390d1f4c4523f9941ed0a.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ishin gjithsej tre detyra:<\/p>\n<p><\/p>\n<ul>\n<li>p\u00ebr zgjedhjen e replikave sipas peshave p\u00ebr balancimin e ngarkes\u00ebs<\/li>\n<li>p\u00ebr renditjen e rezultateve t\u00eb pyetjes n\u00eb nj\u00eb baz\u00eb t\u00eb dh\u00ebnash in-memory<\/li>\n<li>p\u00ebr trajtimin e gjendjes n\u00eb nj\u00eb sistem t\u00eb shp\u00ebrndar\u00eb me topologji rrethi<\/li>\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h1 id=\"zadacha-1-clusterclient\">Detyra 1. ClusterClient<\/h1>\n<p><\/p>\n<p>Duhej t\u00eb ofronim nj\u00eb algorit\u00ebm efikas p\u00ebr zgjedhjen e K nga N replikave t\u00eb peshkuara t\u00eb nj\u00eb sistemi t\u00eb shp\u00ebrndar\u00eb:<\/p>\n<p><\/p>\n<blockquote><p>Ekipa juaj ka detyr\u00ebn t\u00eb zhvilloj\u00eb nj\u00eb bibliotek\u00eb klienti p\u00ebr nj\u00eb grup masiv distribucioni me N nyje. Biblioteka do t\u00eb mbaj\u00eb gjurm\u00ebt e metadatat\u00eb t\u00eb ndryshme t\u00eb lidhura me nyjet (p.sh., latencat e tyre, shkall\u00ebt e p\u00ebrgjigjeve 4xx\/5xx, etj.) dhe do t'u jap\u00eb pesh\u00eb flotante W1..WN atyre. P\u00ebr t\u00eb mb\u00ebshtetur strategjin\u00eb e ekzekutimit nj\u00ebkoh\u00ebsisht, biblioteka duhet t\u00eb jet\u00eb n\u00eb gjendje t\u00eb zgjedh\u00eb K nga N nyje rast\u00ebsisht\u2014nj\u00eb shans p\u00ebr t'u zgjedhur duhet t\u00eb jet\u00eb proporcional me pesh\u00ebn e nj\u00eb nyjeje.<\/p>\n<p>Propozoni nj\u00eb algorit\u00ebm p\u00ebr t\u00eb seleksionuar nyje n\u00eb m\u00ebnyr\u00eb efikase. Vler\u00ebsoni kompleksitetin e tij kompjuterik duke p\u00ebrdorur notacionin e madh O.<\/p><\/blockquote>\n<p>\n<b class=\"spoiler_title\">Pse \u00ebsht\u00eb gjith\u00e7ka n\u00eb anglisht?<\/b><\/p>\n<p>Sepse n\u00eb k\u00ebt\u00eb form\u00eb u luftuan nga pjes\u00ebmarr\u00ebsit e konferenc\u00ebs dhe sepse anglishtja ishte gjuha zyrtare e Hydra-s. Problemet dukej k\u00ebshtu:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Analiza e detyrave nga konferenca Hydra \u2014 balancimi i ngarkes\u00ebs dhe ruajtja n\u00eb memorie\" src=\"\/wp-content\/uploads\/2019\/07\/4bdf7031c82eea4340a5cdef9ad8df0f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Merrni nj\u00eb let\u00ebr dhe nj\u00eb laps, mendoni, mos u nxehni p\u00ebr t\u00eb hapur menj\u00ebher\u00eb spoiler\u00ebt \ud83d\ude42<\/p>\n<p>\n<b class=\"spoiler_title\">Analiza e zgjidhjes (video)<\/b><\/p>\n<p>Fillimi n\u00eb 5:53, gjithsej 4 minuta:<\/p>\n<p>\n<center><div class=\"youtube-placeholder\" data-id=\"HAiQ2llS0bE\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/HAiQ2llS0bE\/hqdefault.jpg\" alt=\"Luaj videon\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<p>K\u00ebtu si e pitchuan zgjidhjen e tyre ata t\u00eb nj\u00ebjtit tip me flipchart:<\/p>\n<p>\n<center><div class=\"youtube-placeholder\" data-id=\"U_yfKDwXppg\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/U_yfKDwXppg\/hqdefault.jpg\" alt=\"Luaj videon\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><br \/>\n<b class=\"spoiler_title\">Analiza e zgjidhjes (tekst)<\/b><\/p>\n<p>Nj\u00eb zgjidhje q\u00eb shfaqet \u00ebsht\u00eb: t\u00eb p\u00ebrmbledhim peshat e t\u00eb gjitha replika, t\u00eb gjenerojm\u00eb nj\u00eb num\u00ebr t\u00eb rast\u00ebsish\u00ebm nga 0 deri n\u00eb shum\u00ebn e t\u00eb gjitha peshave, pastaj t\u00eb zgjedhim nj\u00eb replik\u00eb i, n\u00eb m\u00ebnyr\u00eb q\u00eb shum\u00ebn e peshave t\u00eb replikave nga 0 deri n\u00eb (i-1)-en t\u00eb jet\u00eb m\u00eb pak se numri i rast\u00ebsish\u00ebm, nd\u00ebrsa shum\u00ebn e peshave t\u00eb replikave nga 0 deri n\u00eb i-t\u00eb t\u00eb jet\u00eb m\u00eb shum\u00eb se ai. K\u00ebshtu do t\u00eb kemi zgjedhur nj\u00eb replik\u00eb, dhe p\u00ebr t\u00eb zgjedhur t\u00eb ardhshmen, duhet t\u00eb p\u00ebrs\u00ebrisim t\u00ebr\u00eb procedur\u00ebn, pa marr\u00eb parasysh replik\u00ebn e zgjedhur. Me nj\u00eb algorit\u00ebm t\u00eb till\u00eb, kompleksiteti i zgjedhjes s\u00eb nj\u00eb replike \u00ebsht\u00eb O(N), kompleksiteti i zgjedhjes s\u00eb K replikave \u00ebsht\u00eb O(N\u00b7K) ~ O(N\u00b2).<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Analiza e detyrave nga konferenca Hydra \u2014 balancimi i ngarkes\u00ebs dhe ruajtja n\u00eb memorie\" src=\"\/wp-content\/uploads\/2019\/07\/0d869f10421f9cf36e501faefc76f209.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kompleksiteti katror \u00ebsht\u00eb i keq, megjithat\u00eb ai mund t\u00eb p\u00ebrmir\u00ebsohet. P\u00ebr k\u00ebt\u00eb, do t\u00eb nd\u00ebrtojm\u00eb <noindex><a rel=\"nofollow\" href=\"http:\/\/brestprog.by\/topics\/segmenttree\/\">nj\u00eb pem\u00eb segmentesh<\/a><\/noindex> p\u00ebr shumat e peshave. Do t\u00eb rezultoj\u00eb nj\u00eb pem\u00eb me thell\u00ebsi lg N, n\u00eb gjethet e s\u00eb cil\u00ebs do t\u00eb jen\u00eb peshat e replikave, nd\u00ebrsa n\u00eb nodet e tjera \u2014 shumat pjesore, deri n\u00eb shum\u00ebn e t\u00eb gjitha peshave n\u00eb rr\u00ebnj\u00ebn e pem\u00ebs. M\u00eb pas, gjenerojm\u00eb nj\u00eb num\u00ebr t\u00eb rast\u00ebsish\u00ebm nga 0 deri n\u00eb shum\u00ebn e t\u00eb gjitha peshave, gjejm\u00eb replik\u00ebn e i-t\u00eb, e heqim at\u00eb nga pema dhe p\u00ebrs\u00ebrisim procedur\u00ebn p\u00ebr t\u00eb k\u00ebrkuar replikat e mbetura. Me nj\u00eb algorit\u00ebm t\u00eb till\u00eb, kompleksiteti i nd\u00ebrtimit t\u00eb pem\u00ebs \u00ebsht\u00eb O(N), kompleksiteti i k\u00ebrkimit t\u00eb replik\u00ebs s\u00eb i-t\u00eb dhe heqjes s\u00eb saj nga pema \u00ebsht\u00eb O(lg N), kompleksiteti i zgjedhjes s\u00eb K replikave \u00ebsht\u00eb O(N + K lg N) ~ O(N lg N).<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Analiza e detyrave nga konferenca Hydra \u2014 balancimi i ngarkes\u00ebs dhe ruajtja n\u00eb memorie\" src=\"\/wp-content\/uploads\/2019\/07\/458c897c3b70c3870a3510f76ec2992f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kompleksi linear-logarithmik \u00ebsht\u00eb m\u00eb i k\u00ebndsh\u00ebm se ai katror, ve\u00e7an\u00ebrisht p\u00ebr K t\u00eb m\u00ebdha.<\/p>\n<p><\/p>\n<p>Ky algorit\u00ebm <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/vostok\/clusterclient.core\/blob\/master\/Vostok.ClusterClient.Core\/Ordering\/Weighed\/WeighedReplicaOrdering.cs\">\u00ebsht\u00eb implementuar n\u00eb kodin<\/a><\/noindex> t\u00eb bibliotek\u00ebs ClusterClient nga projekti \"<noindex><a rel=\"nofollow\" href=\"https:\/\/tech.kontur.ru\/vostok\">Vostok<\/a><\/noindex>\". (Atje nd Build tree n\u00eb O(N lg N), por kjo nuk ndikon n\u00eb kompleksitetin p\u00ebrfundimtar t\u00eb algoritmit.)<\/p>\n<p><\/p>\n<h1 id=\"zadacha-2-zebra\">Detyra 2. Zebra<\/h1>\n<p><\/p>\n<p>Duhej propozuar nj\u00eb algorit\u00ebm efikas p\u00ebr renditjen e dokumenteve n\u00eb memorie sipas nj\u00eb fushe t\u00eb rast\u00ebsishme t\u00eb pa indeksuar:<\/p>\n<p><\/p>\n<blockquote><p>Ekipi juaj \u00ebsht\u00eb i ngarkuar me zhvillimin e nj\u00eb baze t\u00eb dh\u00ebnash dokumentesh t\u00eb ndara n\u00eb memorie. Nj\u00eb ngarkes\u00eb e zakonshme do t\u00eb ishte t\u00eb zgjidhni N dokumentet m\u00eb t\u00eb mira t\u00eb renditura sipas nj\u00eb fushe numerike (jo-indeksuar) t\u00eb rast\u00ebsishme nga nj\u00eb koleksion me madh\u00ebsi M (zakonisht N &lt; 100 &lt;&lt; M). Nj\u00eb ngarkes\u00eb pak m\u00eb pak t\u00eb zakonshme do t\u00eb ishte t\u00eb zgjidhni N dokumentet m\u00eb t\u00eb mira pas skipping S dokumenteve t\u00eb par\u00eb (S ~ N).<\/p>\n<p>Propozoni nj\u00eb algorit\u00ebm p\u00ebr t\u00eb ekzekutuar k\u00ebto k\u00ebrkesa n\u00eb m\u00ebnyr\u00eb efikase. Vler\u00ebsoni kompleksitetin e tij kompjuterik duke p\u00ebrdorur notacionin e madh O n\u00eb rastin mesatar dhe n\u00eb skenar\u00ebt m\u00eb t\u00eb keq.<\/p><\/blockquote>\n<p>\n<b class=\"spoiler_title\">Analiza e zgjidhjes (video)<\/b><\/p>\n<p>Fillimi n\u00eb 34:50, gjithsej 6 minuta:<\/p>\n<p>\n<center><div class=\"youtube-placeholder\" data-id=\"HAiQ2llS0bE\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/HAiQ2llS0bE\/hqdefault.jpg\" alt=\"Luaj videon\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><br \/>\n<b class=\"spoiler_title\">Analiza e zgjidhjes (tekst)<\/b><\/p>\n<p>Zgjidhja \u00ebsht\u00eb sip\u00ebrfaq\u00ebsore: renditni t\u00eb gjith\u00eb dokumentet (p\u00ebr shembull, duke p\u00ebrdorur <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%91%D1%8B%D1%81%D1%82%D1%80%D0%B0%D1%8F_%D1%81%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0\">quicksort<\/a><\/noindex>), pastaj merrni dokumentet N+S. N\u00eb k\u00ebt\u00eb rast kompleksiteti i renditjes n\u00eb mesatar \u00ebsht\u00eb O(M lg M), n\u00eb m\u00eb t\u00eb keqin \u00ebsht\u00eb O(M2).<\/p>\n<p><\/p>\n<p>E qart\u00eb, se renditja e t\u00eb gjith\u00eb M dokumenteve, p\u00ebr t\u00eb marr\u00eb pastaj vet\u00ebm nj\u00eb pjes\u00eb t\u00eb vog\u00ebl prej tyre \u2014 \u00ebsht\u00eb joefikase. P\u00ebr t\u00eb mos renditur t\u00eb gjith\u00eb dokumentet, do t\u00eb pranohej algoritmi <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Quickselect\">quickselect<\/a><\/noindex>, i cili do t\u00eb zgjedh\u00eb N+S dokumentet e nevojshme (ato mund t\u00eb grumbullohen p\u00ebrmes \u00e7do algoritmi). N\u00eb k\u00ebt\u00eb rast, kompleksiteti mesatar do t\u00eb zvog\u00eblohet n\u00eb O(M), nd\u00ebrsa rasti m\u00eb i keq do t\u00eb mbetet i nj\u00ebjt\u00eb.<\/p>\n<p><\/p>\n<p>Megjithat\u00eb, \u00ebsht\u00eb e mundur ta b\u00ebni edhe m\u00eb efikas \u2014 duke p\u00ebrdorur algoritmin <noindex><a rel=\"nofollow\" href=\"https:\/\/stackoverflow.com\/questions\/30914801\/optimal-algorithm-to-return-largest-k-elements-from-an-array-of-infinite-number\">binary heap streaming<\/a><\/noindex>. N\u00eb k\u00ebt\u00eb rast, dokumentet e para N+S vendosen n\u00eb min- ose max-heap (n\u00eb var\u00ebsi t\u00eb drejtimit t\u00eb renditjes), dhe m\u00eb pas \u00e7do dokument tjet\u00ebr krahasohet me rr\u00ebnj\u00ebn e pem\u00ebs, ku ndodhet dokumenti minimal ose maksimal p\u00ebr momentin, dhe, n\u00ebse \u00ebsht\u00eb e nevojshme, shtohet n\u00eb pem\u00eb. N\u00eb k\u00ebt\u00eb rast, kompleksiteti n\u00eb rastin m\u00eb t\u00eb keq, kur duhet t\u00eb rind\u00ebrtohet vazhdimisht pem\u00eb \u2014 O(M lg M), kompleksiteti mesatar \u2014 O(M), ashtu si\u00e7 ndodh me quickselect.<\/p>\n<p><\/p>\n<p>Megjithat\u00eb, heap streaming rezulton m\u00eb efektiv p\u00ebr shkak se n\u00eb praktik\u00eb shumic\u00ebn e dokumenteve arrijm\u00eb t'i heqim dor\u00eb pa e rind\u00ebrtuar grumbullin, pas nj\u00eb krahasimi t\u00eb vet\u00ebm me elementin e saj rr\u00ebnj\u00ebsor. Kjo renditje \u00ebsht\u00eb implementuar n\u00eb baz\u00ebn e t\u00eb dh\u00ebnave dokumentare in-memory Zebra, e cila \u00ebsht\u00eb zhvilluar dhe p\u00ebrdorur n\u00eb Kontur.<\/p>\n<p><\/p>\n<h1 id=\"zadacha-3-state-swaps\">Detyra 3. K\u00ebmbimet e gjendjeve<\/h1>\n<p><\/p>\n<p>Duhej t\u00eb propozohej algoritmi m\u00eb efikas p\u00ebr zhvendosjen e gjendjeve:<\/p>\n<p><\/p>\n<blockquote><p>Ekipa juaj \u00ebsht\u00eb ngarkuar me zhvillimin e nj\u00eb mekanizmi t\u00eb avancuar t\u00eb shk\u00ebmbimit t\u00eb gjendjes p\u00ebr nj\u00eb grup t\u00eb shp\u00ebrndar\u00eb prej N nodesh. Gjendja e nodit t\u00eb i-t\u00eb duhet t\u00eb transferohet te nodi (i+1)-t\u00eb, gjendja e nodit N duhet t\u00eb transferohet te nodi i par\u00eb. Operacioni i vet\u00ebm i mb\u00ebshtetur \u00ebsht\u00eb shk\u00ebmbimi i gjendjes kur dy node shk\u00ebmbejn\u00eb gjendjet e tyre n\u00eb m\u00ebnyr\u00eb atomike. Dihet se nj\u00eb shk\u00ebmbim gjendje zgjat M milisekonda. \u00c7do nod \u00ebsht\u00eb n\u00eb gjendje t\u00eb marr\u00eb pjes\u00eb n\u00eb nj\u00eb shk\u00ebmbim gjendjeje n\u00eb \u00e7do moment t\u00eb caktuar.<\/p>\n<p>Sa koh\u00eb duhet p\u00ebr t\u00eb transferuar gjendjet e t\u00eb gjitha nodeve n\u00eb nj\u00eb grup?<\/p><\/blockquote>\n<p>\n<b class=\"spoiler_title\">Analiza e zgjidhjes (tekst)<\/b><\/p>\n<p>Zgjidhja n\u00eb sip\u00ebrfaqe: shk\u00ebmbimi i gjendjeve t\u00eb elementit t\u00eb par\u00eb dhe t\u00eb dyt\u00eb, pastaj t\u00eb parit dhe t\u00eb tret\u00eb, pastaj t\u00eb parit dhe t\u00eb kat\u00ebrt, dhe k\u00ebshtu me radh\u00eb. Pas \u00e7do shk\u00ebmbimi, gjendja e nj\u00eb elementi do t\u00eb jet\u00eb n\u00eb pozitat e duhura. Do t\u00eb duhen O(N) radhitje dhe do t\u00eb shpenzohen O(N\u00b7M) koh\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Analiza e detyrave nga konferenca Hydra \u2014 balancimi i ngarkes\u00ebs dhe ruajtja n\u00eb memorie\" src=\"\/wp-content\/uploads\/2019\/07\/c0bbdf680f565d790bd64ebcd90bf985.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Koha lineare \u00ebsht\u00eb shum\u00eb e gjat\u00eb, prandaj mund t\u00eb shk\u00ebmbejm\u00eb gjendjet e elementeve \u00e7ift: t\u00eb parin me t\u00eb dytin, t\u00eb tretin me t\u00eb kat\u00ebrtin dhe k\u00ebshtu me radh\u00eb. Pas \u00e7do shk\u00ebmbimi, gjendja e \u00e7do elementi t\u00eb dyt\u00eb do t\u00eb jet\u00eb n\u00eb pozitat e duhura. Do t\u00eb duhen O(lg N) radhitje dhe do t\u00eb shpenzohen O(M lg N) koh\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Analiza e detyrave nga konferenca Hydra \u2014 balancimi i ngarkes\u00ebs dhe ruajtja n\u00eb memorie\" src=\"\/wp-content\/uploads\/2019\/07\/7d55d4f8b63bf63763e93b5780e02c48.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Megjithat\u00eb, mund t\u00eb b\u00ebni nj\u00eb zhvendosje edhe m\u00eb efikase - jo n\u00eb koh\u00eb lineare, por n\u00eb koh\u00eb konstante. P\u00ebr k\u00ebt\u00eb, n\u00eb hapin e par\u00eb, duhet t\u00eb k\u00ebmbeni gjendjen e elementit t\u00eb par\u00eb me at\u00eb t\u00eb fundit, t\u00eb dytin me t\u00eb parafundin dhe k\u00ebshtu me radh\u00eb. Gjendja e elementit t\u00eb fundit do t\u00eb p\u00ebrfundoj\u00eb n\u00eb pozitat e duhura. Tani duhet t\u00eb k\u00ebmbeni gjendjen e elementit t\u00eb dyt\u00eb me at\u00eb t\u00eb fundit, t\u00eb tret\u00eb me at\u00eb t\u00eb parafundit dhe k\u00ebshtu me radh\u00eb. Pas k\u00ebtij raundi t\u00eb k\u00ebmbimeve, gjendjet e t\u00eb gjith\u00eb elementeve do t\u00eb jen\u00eb n\u00eb pozitat e duhura. N\u00eb total, do t\u00eb b\u00ebhen O(2M) ~ O(1) shk\u00ebmbime.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Analiza e detyrave nga konferenca Hydra \u2014 balancimi i ngarkes\u00ebs dhe ruajtja n\u00eb memorie\" src=\"\/wp-content\/uploads\/2019\/07\/ad5fe5325985af3b280d2dc75c6a1077.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kjo zgjidhje nuk do ta befasoj\u00eb fare matematikun q\u00eb ende e mban mend se rrotullimi \u00ebsht\u00eb nj\u00eb kompozim i dy simetrive aksiale. P\u00ebr m\u00eb tep\u00ebr, ajo p\u00ebrshtatet n\u00eb m\u00ebnyr\u00eb triviale p\u00ebr zhvendosjen jo p\u00ebr nj\u00eb, por p\u00ebr K &lt; N pozita. (Shkruani n\u00eb komentet se si ndodhi.)<\/p>\n<p><\/p>\n<p>Ju p\u00eblqyen k\u00ebto detyra? Dini zgjidhje t\u00eb tjera? Ndani n\u00eb komente.<\/p>\n<p><\/p>\n<p>Ja disa lidhje t\u00eb dobishme p\u00ebrfundimisht:<\/p>\n<p><\/p>\n<ul>\n<li>m\u00ebsoni m\u00eb shum\u00eb rreth <noindex><a rel=\"nofollow\" href=\"https:\/\/tech.kontur.ru\/infra\">zhvillimit t\u00eb infrastruktur\u00ebs<\/a><\/noindex> n\u00eb Kontur<\/li>\n<li>shihni regjistrimet e brendshme <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/playlist?list=PLc82OEDeni8TxAybSoENHU-hJ4mRbVQG2\">t\u00eb takimeve me prezantime<\/a><\/noindex> p\u00ebr sistemet e shp\u00ebrndara<\/li>\n<li>shihni ciklin e videove \"<noindex><a rel=\"nofollow\" href=\"https:\/\/tech.kontur.ru\/algorithms-for-everyone\">Algoritme t\u00eb pazakonta p\u00ebr njer\u00ebz t\u00eb zakonsh\u00ebm<\/a><\/noindex>\u00bb<\/li>\n<li>subskriboni n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/KonturTech\">kanalin ton\u00eb n\u00eb Telegram<\/a><\/noindex><\/li>\n<\/ul>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skbkontur\/blog\/459958\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043d\u0435\u0439 \u043d\u0430\u0437\u0430\u0434 \u0441\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f Hydra. \u0420\u0435\u0431\u044f\u0442\u0430 \u0438\u0437 JUG.ru Group \u043f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u043b\u0438 \u0441\u043f\u0438\u043a\u0435\u0440\u043e\u0432 \u043c\u0435\u0447\u0442\u044b (\u041b\u0435\u0441\u043b\u0438 \u041b\u044d\u043c\u043f\u043e\u0440\u0442! \u041a\u043b\u0438\u0444\u0444 \u041a\u043b\u0438\u043a! \u041c\u0430\u0440\u0442\u0438\u043d \u041a\u043b\u0435\u043f\u043f\u043c\u0430\u043d\u043d!) \u0438 \u043f\u043e\u0441\u0432\u044f\u0442\u0438\u043b\u0438 \u0434\u0432\u0430 \u0434\u043d\u044f \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f\u043c. \u041a\u043e\u043d\u0442\u0443\u0440 \u0431\u044b\u043b \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0442\u0440\u0451\u0445 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u043e\u0432 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438. \u041c\u044b \u043e\u0431\u0449\u0430\u043b\u0438\u0441\u044c \u043d\u0430 \u0441\u0442\u0435\u043d\u0434\u0435, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438 \u043f\u0440\u043e \u043d\u0430\u0448\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u043a\u0438, \u0438\u0433\u0440\u0430\u043b\u0438 \u0432 \u0431\u0438\u043d\u0433\u043e, \u0440\u0435\u0448\u0430\u043b\u0438 \u0437\u0430\u0434\u0430\u0447\u043a\u0438. \u042d\u0442\u043e \u043f\u043e\u0441\u0442 \u0441 \u0440\u0430\u0437\u0431\u043e\u0440\u043e\u043c \u0437\u0430\u0434\u0430\u0447 \u043d\u0430 \u0441\u0442\u0435\u043d\u0434\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27083,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36205","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043d\u0435\u0439 \u043d\u0430\u0437\u0430\u0434 \u0441\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f Hydra. \u0420\u0435\u0431\u044f\u0442\u0430 \u0438\u0437 JUG.ru Group \u043f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u043b\u0438 \u0441\u043f\u0438\u043a\u0435\u0440\u043e\u0432 \u043c\u0435\u0447\u0442\u044b (\u041b\u0435\u0441\u043b\u0438 \u041b\u044d\u043c\u043f\u043e\u0440\u0442! \u041a\u043b\u0438\u0444\u0444 \u041a\u043b\u0438\u043a! \u041c\u0430\u0440\u0442\u0438\u043d \u041a\u043b\u0435\u043f\u043f\u043c\u0430\u043d\u043d!) \u0438 \u043f\u043e\u0441\u0432\u044f\u0442\u0438\u043b\u0438 \u0434\u0432\u0430 \u0434\u043d\u044f \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f\u043c. \u041a\u043e\u043d\u0442\u0443\u0440 \u0431\u044b\u043b \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0442\u0440\u0451\u0445 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u043e\u0432 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438. \u041c\u044b \u043e\u0431\u0449\u0430\u043b\u0438\u0441\u044c \u043d\u0430 \u0441\u0442\u0435\u043d\u0434\u0435, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438 \u043f\u0440\u043e \u043d\u0430\u0448\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u043a\u0438, \u0438\u0433\u0440\u0430\u043b\u0438 \u0432 \u0431\u0438\u043d\u0433\u043e, \u0440\u0435\u0448\u0430\u043b\u0438 \u0437\u0430\u0434\u0430\u0447\u043a\u0438. \u042d\u0442\u043e \u043f\u043e\u0441\u0442 \u0441 \u0440\u0430\u0437\u0431\u043e\u0440\u043e\u043c \u0437\u0430\u0434\u0430\u0447 \u043d\u0430 \u0441\u0442\u0435\u043d\u0434\u0435\" \/>\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\/razbor-zadach-s-konferentsii-hydra-balansirovka-nagruzki-i-in-memory-hranilishha\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\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\u0420\u0430\u0437\u0431\u043e\u0440 \u0437\u0430\u0434\u0430\u0447 \u0441 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 Hydra \u2014 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438 in-memory \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043d\u0435\u0439 \u043d\u0430\u0437\u0430\u0434 \u0441\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f Hydra. \u0420\u0435\u0431\u044f\u0442\u0430 \u0438\u0437 JUG.ru Group \u043f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u043b\u0438 \u0441\u043f\u0438\u043a\u0435\u0440\u043e\u0432 \u043c\u0435\u0447\u0442\u044b (\u041b\u0435\u0441\u043b\u0438 \u041b\u044d\u043c\u043f\u043e\u0440\u0442! \u041a\u043b\u0438\u0444\u0444 \u041a\u043b\u0438\u043a! \u041c\u0430\u0440\u0442\u0438\u043d \u041a\u043b\u0435\u043f\u043f\u043c\u0430\u043d\u043d!) \u0438 \u043f\u043e\u0441\u0432\u044f\u0442\u0438\u043b\u0438 \u0434\u0432\u0430 \u0434\u043d\u044f \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f\u043c. \u041a\u043e\u043d\u0442\u0443\u0440 \u0431\u044b\u043b \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0442\u0440\u0451\u0445 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u043e\u0432 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438. \u041c\u044b \u043e\u0431\u0449\u0430\u043b\u0438\u0441\u044c \u043d\u0430 \u0441\u0442\u0435\u043d\u0434\u0435, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438 \u043f\u0440\u043e \u043d\u0430\u0448\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u043a\u0438, \u0438\u0433\u0440\u0430\u043b\u0438 \u0432 \u0431\u0438\u043d\u0433\u043e, \u0440\u0435\u0448\u0430\u043b\u0438 \u0437\u0430\u0434\u0430\u0447\u043a\u0438. \u042d\u0442\u043e \u043f\u043e\u0441\u0442 \u0441 \u0440\u0430\u0437\u0431\u043e\u0440\u043e\u043c \u0437\u0430\u0434\u0430\u0447 \u043d\u0430 \u0441\u0442\u0435\u043d\u0434\u0435\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/razbor-zadach-s-konferentsii-hydra-balansirovka-nagruzki-i-in-memory-hranilishha\" \/>\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=\"2019-10-31T19:10:16+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:10:16+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\udd47Analiza e problemeve nga konferenca Hydra \u2014 balancimi i ngarkes\u00ebs dhe magazinat in-memory | ProHoster","description":"Disa dit\u00eb m\u00eb par\u00eb u mbajt konferenca Hydra. Djemt\u00eb nga JUG.ru Group ftuat fol\u00ebsit e \u00ebndrrave (Leslie Lamport! Cliff Click! Martin Kleppmann!) dhe i dedikuan dy dit\u00eb sistemeve t\u00eb distribuara dhe llogaritjeve. Kontur ishte nj\u00eb nga tre partner\u00ebt e konferenc\u00ebs. Ne biseduam n\u00eb stend\u00eb, fol\u00ebm p\u00ebr magazinat tona t\u00eb distribuara, luajt\u00ebm bingo, zgjidh\u00ebm probleme. Ky \u00ebsht\u00eb nj\u00eb postim me analiz\u00ebn e problemeve n\u00eb stend\u00eb.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/razbor-zadach-s-konferentsii-hydra-balansirovka-nagruzki-i-in-memory-hranilishha","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\u0420\u0430\u0437\u0431\u043e\u0440 \u0437\u0430\u0434\u0430\u0447 \u0441 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 Hydra \u2014 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438 in-memory \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 | ProHoster","og:description":"\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043d\u0435\u0439 \u043d\u0430\u0437\u0430\u0434 \u0441\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f Hydra. \u0420\u0435\u0431\u044f\u0442\u0430 \u0438\u0437 JUG.ru Group \u043f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u043b\u0438 \u0441\u043f\u0438\u043a\u0435\u0440\u043e\u0432 \u043c\u0435\u0447\u0442\u044b (\u041b\u0435\u0441\u043b\u0438 \u041b\u044d\u043c\u043f\u043e\u0440\u0442! \u041a\u043b\u0438\u0444\u0444 \u041a\u043b\u0438\u043a! \u041c\u0430\u0440\u0442\u0438\u043d \u041a\u043b\u0435\u043f\u043f\u043c\u0430\u043d\u043d!) \u0438 \u043f\u043e\u0441\u0432\u044f\u0442\u0438\u043b\u0438 \u0434\u0432\u0430 \u0434\u043d\u044f \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f\u043c. \u041a\u043e\u043d\u0442\u0443\u0440 \u0431\u044b\u043b \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0442\u0440\u0451\u0445 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u043e\u0432 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438. \u041c\u044b \u043e\u0431\u0449\u0430\u043b\u0438\u0441\u044c \u043d\u0430 \u0441\u0442\u0435\u043d\u0434\u0435, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438 \u043f\u0440\u043e \u043d\u0430\u0448\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u043a\u0438, \u0438\u0433\u0440\u0430\u043b\u0438 \u0432 \u0431\u0438\u043d\u0433\u043e, \u0440\u0435\u0448\u0430\u043b\u0438 \u0437\u0430\u0434\u0430\u0447\u043a\u0438. \u042d\u0442\u043e \u043f\u043e\u0441\u0442 \u0441 \u0440\u0430\u0437\u0431\u043e\u0440\u043e\u043c \u0437\u0430\u0434\u0430\u0447 \u043d\u0430 \u0441\u0442\u0435\u043d\u0434\u0435","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/razbor-zadach-s-konferentsii-hydra-balansirovka-nagruzki-i-in-memory-hranilishha","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":"2019-10-31T19:10:16+00:00","article:modified_time":"2019-10-31T19:10:16+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36205","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":"2026-01-22 02:25:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 16:50:57","updated":"2026-01-22 02:25:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/36205","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=36205"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/36205\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/27083"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=36205"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=36205"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=36205"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}