{"id":78887,"date":"2020-04-22T19:42:51","date_gmt":"2020-04-22T17:42:51","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/wal-g-novye-vozmozhnosti-i-rasshirenie-soobshhestva-georgij-rylov"},"modified":"2020-04-22T19:42:51","modified_gmt":"2020-04-22T17:42:51","slug":"wal-g-novye-vozmozhnosti-i-rasshirenie-soobshhestva-georgij-rylov","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/wal-g-novye-vozmozhnosti-i-rasshirenie-soobshhestva-georgij-rylov","title":{"rendered":"WAL-G: mund\u00ebsi t\u00eb reja dhe zgjerimi i komunitetit. Georgi Rylov","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><strong>\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u043d\u0430\u0447\u0430\u043b\u0430 2020 \u0433\u043e\u0434\u0430 \u0413\u0435\u043e\u0440\u0433\u0438\u044f \u0420\u044b\u043b\u043e\u0432\u0430 &quot;WAL-G: \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430&quot;<\/strong><\/p>\n<p><\/p>\n<p>\u0423 \u043c\u0435\u0438\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 open-source \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043f\u043e \u043c\u0435\u0440\u0435 \u0438\u0445 \u0440\u043e\u0441\u0442\u0430. \u041a\u0430\u043a \u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0441\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0445 \u0444\u0438\u0447, \u0447\u0438\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 issues&#8217;\u043e\u0432 \u0438 \u0443\u0441\u043f\u0435\u0432\u0430\u0442\u044c \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0441\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 pull request&#8217;\u043e\u0432? \u041d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 WAL-G(backup-tool for PostgreSQL) \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043f\u0440\u043e \u0442\u043e, \u043a\u0430\u043a \u043c\u044b \u0440\u0435\u0448\u0430\u043b\u0438 \u044d\u0442\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0432 \u043a\u0443\u0440\u0441 \u043f\u043e Open-source \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0432 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0435, \u0447\u0435\u0433\u043e \u043c\u044b \u0434\u043e\u0431\u0438\u043b\u0438\u0441\u044c \u0438 \u043a\u0443\u0434\u0430 \u0431\u0443\u0434\u0435\u043c \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043b\u044c\u0448\u0435.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: mund\u00ebsi t\u00eb reja dhe zgjerimi i komunitetit. Georgi Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/c76e27949b782480284ab52791fdfe15.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>P\u00ebrsh\u00ebndetje t\u00eb gjith\u00ebve p\u00ebrs\u00ebri! Un\u00eb jam zhvillues n\u00eb Yandex nga Ekaterinburgu. Dhe sot do t\u00eb flas p\u00ebr WAL-G.<\/p>\n<p><\/p>\n<p>N\u00eb titullin e raportit nuk ishte p\u00ebrmendur se \u00ebsht\u00eb di\u00e7ka mbi backup-et. A di ndokush se \u00e7far\u00eb \u00ebsht\u00eb WAL-G? Apo t\u00eb gjith\u00eb e din\u00eb? Ndizni dor\u00ebn, kush nuk e di. Wow, erdh\u00ebt n\u00eb raport dhe nuk e dini se p\u00ebr \u00e7far\u00eb \u00ebsht\u00eb.<\/p>\n<p><\/p>\n<p>Le t\u00eb tregoj se \u00e7far\u00eb do t\u00eb ndodh\u00eb sot. Ndodhi q\u00eb ekipi yn\u00eb merret me backup prej nj\u00eb kohe t\u00eb gjat\u00eb. Dhe ky \u00ebsht\u00eb nj\u00eb raport tjet\u00ebr n\u00eb serin\u00eb ku tregojm\u00eb se si ruajm\u00eb t\u00eb dh\u00ebnat n\u00eb m\u00ebnyr\u00eb t\u00eb sigurt, t\u00eb besueshme, t\u00eb p\u00ebrshtatshme dhe efikase.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: mund\u00ebsi t\u00eb reja dhe zgjerimi i komunitetit. Georgi Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/4307e7b2acc60cd908d91e3f1b83a9b6.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>N\u00eb epizodat e m\u00ebparshme kishte shum\u00eb raportime nga Andrei Borodin, Vladimir Leskov. Ne ishim shum\u00eb. Dhe t\u00eb gjith\u00eb ne flasim p\u00ebr WAL-G tashm\u00eb p\u00ebr shum\u00eb vite. <\/p>\n<p><\/p>\n<p>clck.ru\/F8ioz \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.highload.ru\/moscow\/2018\/abstracts\/3964\">https:\/\/www.highload.ru\/moscow\/2018\/abstracts\/3964<\/a><\/noindex><\/p>\n<p><\/p>\n<p>clck.ru\/Ln8Qw \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.highload.ru\/moscow\/2019\/abstracts\/5981\">https:\/\/www.highload.ru\/moscow\/2019\/abstracts\/5981<\/a><\/noindex><\/p>\n<p><\/p>\n<p>Ky raport do t\u00eb dalloj\u00eb pak nga t\u00eb tjer\u00ebt, sepse ai do t\u00eb fokusohet m\u00eb shum\u00eb n\u00eb pjes\u00ebn teknike, nd\u00ebrsa k\u00ebtu do t\u00eb tregoj si u p\u00ebrball\u00ebm me problemet e lidhura me rritjen e komunitetit. Dhe si erdh\u00ebm me nj\u00eb ide t\u00eb vog\u00ebl q\u00eb na ndihmon t\u00eb p\u00ebrballojm\u00eb k\u00ebt\u00eb. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: mund\u00ebsi t\u00eb reja dhe zgjerimi i komunitetit. Georgi Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/ec728f7d99ea9b6a5df4785d7e8a2a75.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Disa vite m\u00eb par\u00eb WAL-G ishte nj\u00eb projekt mjaft i vog\u00ebl q\u00eb mor\u00ebm nga Citus Data. Dhe ne vet\u00ebm e mor\u00ebm. Dhe e zhvillonte nj\u00eb person.<\/p>\n<p><\/p>\n<p>Dhe vet\u00ebm n\u00eb WAL-G nuk kishte:<\/p>\n<p><\/p>\n<ul>\n<li>Backup nga replika.<\/li>\n<li>Nuk kishte backup-e inkrementale.<\/li>\n<li>Nuk kishte backup-e WAL-Delta. <\/li>\n<li>Dhe ende shum\u00eb gj\u00ebra t\u00eb tjera nuk ishin t\u00eb pranishme.<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Gjat\u00eb k\u00ebtyre disa viteve, WAL-G ka p\u00ebsuar nj\u00eb rritje t\u00eb madhe.<\/strong> <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: mund\u00ebsi t\u00eb reja dhe zgjerimi i komunitetit. Georgi Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/16700dfcc2c54539c5a064894cd1ec88.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe deri n\u00eb vitin 2020, gjith\u00e7ka e p\u00ebrmendur m\u00eb lart ishte tashm\u00eb e pranishme. Dhe p\u00ebrve\u00e7 k\u00ebsaj, tani kemi:<\/p>\n<p><\/p>\n<ul>\n<li>M\u00eb shum\u00eb se 1,000 yje n\u00eb GitHub.<\/li>\n<li>150 forka.<\/li>\n<li>Rreth 15 PR t\u00eb hapura.<\/li>\n<li>Dhe shum\u00eb kontributor\u00eb t\u00eb tjer\u00eb. <\/li>\n<li>Dhe \u00e7\u00ebshtje t\u00eb hapura vazhdimisht. Dhe kjo \u00ebsht\u00eb n\u00eb at\u00eb pik\u00eb q\u00eb ne shkojm\u00eb atje \u00e7do dit\u00eb, b\u00ebjm\u00eb di\u00e7ka me k\u00ebt\u00eb. <\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: mund\u00ebsi t\u00eb reja dhe zgjerimi i komunitetit. Georgi Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/5e5dea14b328a7f0437017ca834d1eaf.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe arrit\u00ebm n\u00eb p\u00ebrfundimin se ky projekt k\u00ebrkon m\u00eb shum\u00eb v\u00ebmendjen ton\u00eb, edhe at\u00ebher\u00eb kur vet\u00eb nuk kemi nevoj\u00eb p\u00ebr t\u00eb realizuar di\u00e7ka p\u00ebr sh\u00ebrbimin ton\u00eb Managed Databases n\u00eb Yandex.<\/p>\n<p><\/p>\n<p>Dhe diku n\u00eb vjesht\u00ebn e vitit 2018, na erdhi nj\u00eb ide. N\u00eb p\u00ebrgjith\u00ebsi, ekipi ka disa m\u00ebnyra si t\u00eb krijoj\u00eb ndonj\u00eb funksionalitet, t\u00eb riparoj\u00eb bugs, n\u00ebse iu mungojn\u00eb duar. P\u00ebr shembull, mund t\u00eb angazhoni nj\u00eb zhvillues t\u00eb ri dhe t'i paguani atij para. Ose mund t\u00eb merrni nj\u00eb praktikant p\u00ebr nj\u00ebfar\u00eb kohe dhe gjithashtu t'i paguani nj\u00eb pag\u00eb. Por ka edhe nj\u00eb grup t\u00eb konsideruesh\u00ebm njer\u00ebzish, pjesa e t\u00eb cil\u00ebve tashm\u00eb di q\u00eb t\u00eb shkruaj kod. Thjesht nuk e dini gjithnj\u00eb se \u00e7far\u00eb cil\u00ebsie ka ky kod.<\/p>\n<p><\/p>\n<p>Kemi menduar dhe vendosur t\u00eb p\u00ebrfshijm\u00eb student\u00eb. Por student\u00ebt nuk do t\u00eb angazhohen n\u00eb \u00e7do aspekt. Ata do t\u00eb marrin p\u00ebrsip\u00ebr vet\u00ebm disa detyra. P\u00ebr shembull, ata do t\u00eb shkruajn\u00eb teste, do t\u00eb rregullojn\u00eb gabime dhe do t\u00eb implementojn\u00eb ve\u00e7ori q\u00eb nuk prekin funksionalitetin kryesor. Funksionaliteti kryesor \u00ebsht\u00eb krijimi dhe rikuperimi i backup-eve. N\u00ebse ndodh nj\u00eb gabim n\u00eb krijimin e nj\u00eb backup-i, at\u00ebher\u00eb ne do t\u00eb humbasim t\u00eb dh\u00ebna. Dhe askush nuk e d\u00ebshiron k\u00ebt\u00eb, sigurisht. T\u00eb gjith\u00eb duan q\u00eb gjith\u00e7ka t\u00eb jet\u00eb shum\u00eb e besueshme. Prandaj, kodi q\u00eb ne i besojm\u00eb m\u00eb pak se kodit ton\u00eb personal, ne sigurisht nuk do ta lejojm\u00eb at\u00eb. Dometh\u00ebn\u00eb, \u00e7do kod jo kritik \u00ebsht\u00eb ajo q\u00eb do t\u00eb d\u00ebshironim t\u00eb merrnim nga duar t\u00eb tjera pune.<\/p>\n<p><\/p>\n<p><strong>N\u00eb cilat kushte pranohet PR-i i studentit<\/strong><\/p>\n<p><\/p>\n<ul>\n<li>Ata jan\u00eb t\u00eb detyruar ta mbulojn\u00eb kodin e tyre me teste. Gjith\u00e7ka duhet t\u00eb kaloj\u00eb n\u00eb CI. <\/li>\n<li>Dhe gjithashtu kalojm\u00eb 2 rishikime. Nj\u00eb t\u00eb Andrey Borodin dhe nj\u00eb t\u00eb im\u00ebn. <\/li>\n<li>P\u00ebr m\u00eb tep\u00ebr, p\u00ebr t\u00eb verifikuar q\u00eb kjo nuk do t\u00eb thyej\u00eb asgj\u00eb n\u00eb sh\u00ebrbimin ton\u00eb, un\u00eb ve\u00e7mas ngarkoj nj\u00eb nd\u00ebrtim me k\u00ebt\u00eb komit. Dhe ne verifikojm\u00eb n\u00eb testet end-to-end q\u00eb asgj\u00eb nuk d\u00ebshtojm\u00eb.<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Kurs i ve\u00e7ant\u00eb p\u00ebr Open Source<\/strong><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: mund\u00ebsi t\u00eb reja dhe zgjerimi i komunitetit. Georgi Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/58832406f3acdf294cd68e6adde14ec8.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Pak sa p\u00ebr at\u00eb se p\u00ebrse \u00ebsht\u00eb e nevojshme dhe pse mendoj se \u00ebsht\u00eb nj\u00eb ide e mrekullueshme. <\/p>\n<p><\/p>\n<p><strong>P\u00ebr ne, p\u00ebrfitimi \u00ebsht\u00eb i qart\u00eb:<\/strong> <\/p>\n<p><\/p>\n<ul>\n<li>Ne kemi m\u00eb shum\u00eb duar p\u00ebr t\u00eb punuar. <\/li>\n<li>Dhe po k\u00ebrkojm\u00eb kandidat\u00eb p\u00ebr ekipin midis student\u00ebve t\u00eb zellsh\u00ebm, t\u00eb cil\u00ebt shkruajn\u00eb kod t\u00eb mir\u00eb. <\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Cili \u00ebsht\u00eb p\u00ebrfitimi p\u00ebr student\u00ebt?<\/strong><\/p>\n<p><\/p>\n<p>Ato mund t\u00eb jen\u00eb m\u00eb pak t\u00eb qarta, sepse student\u00ebt, t\u00eb pakt\u00ebn, nuk marrin para p\u00ebr kodin q\u00eb shkruajn\u00eb, por marrin vet\u00ebm nota n\u00eb regjistrin e tyre. <\/p>\n<p><\/p>\n<p>I pyeta ata p\u00ebr k\u00ebt\u00eb. Dhe sipas tyre:<\/p>\n<p><\/p>\n<ul>\n<li>P\u00ebrvoja si kontribues n\u00eb Open Source.<\/li>\n<li>T\u00eb marrin nj\u00eb rresht n\u00eb CV.<\/li>\n<li>T\u00eb shprehin veten dhe t\u00eb kalojn\u00eb nj\u00eb intervist\u00eb n\u00eb Yandex.<\/li>\n<li>T\u00eb b\u00ebhen pjes\u00ebmarr\u00ebs n\u00eb GSoC.<\/li>\n<li>+1 kurs specialistik p\u00ebr ata q\u00eb duan t\u00eb shkruajn\u00eb kod.<\/li>\n<\/ul>\n<p><\/p>\n<p>Nuk do t\u00eb flas p\u00ebr m\u00ebnyr\u00ebn se si ishte organizuar kursi. Do t\u00eb them vet\u00ebm se WAL-G ishte projekti kryesor. Gjithashtu, p\u00ebrfshim\u00eb projekte si Odyssey, PostgreSQL dhe ClickHouse n\u00eb k\u00ebt\u00eb kurs.<\/p>\n<p><\/p>\n<p>Dhe dh\u00ebm\u00eb detyra jo vet\u00ebm n\u00eb k\u00ebt\u00eb kurs, por gjithashtu l\u00ebshuam diploma dhe punime kursi.<\/p>\n<p><\/p>\n<p><strong>\u00c7far\u00eb p\u00ebrfitimi ka p\u00ebr p\u00ebrdoruesit?<\/strong><\/p>\n<p><\/p>\n<p>Tani kalojm\u00eb n\u00eb pjes\u00ebn q\u00eb ju intereson, \u00e7far\u00eb do t\u00eb fitoni nga kjo? P\u00ebrfitimi \u00ebsht\u00eb se student\u00ebt kan\u00eb riparuar shum\u00eb gabime. Dhe kan\u00eb b\u00ebr\u00eb k\u00ebrkesa p\u00ebr funksione q\u00eb na keni k\u00ebrkuar t\u00eb b\u00ebjm\u00eb. <\/p>\n<p><\/p>\n<p>Le t\u00eb flas p\u00ebr gj\u00ebrat q\u00eb ju keni dashur prej nj\u00eb kohe dhe q\u00eb jan\u00eb realizuar.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: mund\u00ebsi t\u00eb reja dhe zgjerimi i komunitetit. Georgi Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/bb836742bf4f99e1b91c891ed1802bf0.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Mb\u00ebshtetje p\u00ebr tablespaces. Tablespaces n\u00eb WAL-G jan\u00eb pritur ndoshta q\u00eb nga publikimi i WAL-G, sepse WAL-G \u00ebsht\u00eb pasardh\u00ebs i nj\u00eb mjeti tjet\u00ebr rezervimi, WAL-E, ku ishin mb\u00ebshtetur kopjet rezerv\u00eb t\u00eb bazave t\u00eb t\u00eb dh\u00ebnave me tablespaces.<\/p>\n<p><\/p>\n<p>Le t\u00eb kujtoj se \u00e7far\u00eb \u00ebsht\u00eb kjo dhe p\u00ebrse \u00ebsht\u00eb e nevojshme. Si rregull, t\u00eb gjitha t\u00eb dh\u00ebnat e Postgres z\u00ebn\u00eb nj\u00eb direktori n\u00eb sistemin e skedar\u00ebve, e cila quhet bazike. Dhe kjo direktori p\u00ebrmban t\u00eb gjitha skedar\u00ebt dhe n\u00ebn-drektorit\u00eb e nevojshme p\u00ebr Postgres.<\/p>\n<p><\/p>\n<p>Tablespaces jan\u00eb direktori ku ndodhen t\u00eb dh\u00ebnat e Postgres, por ato nuk ndodhen jasht\u00eb direktoris\u00eb bazike. N\u00eb slajd shihet se tablespac\u2019\u00ebt jan\u00eb jasht\u00eb direktoris\u00eb bazike.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: mund\u00ebsi t\u00eb reja dhe zgjerimi i komunitetit. Georgi Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/0f25591cfcaaeaec02903c9b98d8ac65.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Si duket kjo p\u00ebr vet\u00eb Postgres? N\u00eb direktorin\u00eb bazike ka nj\u00eb n\u00ebn-drejtori t\u00eb ve\u00e7ant\u00eb pg_tblspc. Dhe aty ndodhen lidhjet simbolike p\u00ebr direktorit\u00eb ku realisht ndodhen t\u00eb dh\u00ebnat e Postgres jasht\u00eb direktoris\u00eb bazike.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: mund\u00ebsi t\u00eb reja dhe zgjerimi i komunitetit. Georgi Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/9e9875696c03e6e42bb98b5a7a9acd75.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kur p\u00ebrdorni t\u00eb gjitha k\u00ebto, komandat mund t\u00eb duken k\u00ebshtu p\u00ebr ju. Pra, krijoni nj\u00eb tabel\u00eb n\u00eb ndonj\u00eb tablespace t\u00eb caktuar dhe shihni se ku ndodhet aktualisht. K\u00ebto dy rreshta t\u00eb fundit, dy komandat e fundit t\u00eb thirrura. Dhe aty duket se ka nj\u00eb rrug\u00eb. Por n\u00eb fakt \u2013 kjo nuk \u00ebsht\u00eb nj\u00eb rrug\u00eb e v\u00ebrtet\u00eb. Kjo \u00ebsht\u00eb nj\u00eb rrug\u00eb me prefiksin nga direktorja themelore p\u00ebr n\u00eb tablespace. Dhe nga aty ajo \u00ebsht\u00eb e lidhur me nj\u00eb symlink, i cili \u00e7on n\u00eb t\u00eb dh\u00ebnat tuaja reale.<\/p>\n<p><\/p>\n<p>Ne nuk e p\u00ebrdorim k\u00ebt\u00eb n\u00eb ekipin ton\u00eb, por shum\u00eb p\u00ebrdorues t\u00eb tjer\u00eb t\u00eb WAL-E e p\u00ebrdor\u00ebn k\u00ebt\u00eb dhe na shkruan se donin t\u00eb migronin n\u00eb WAL-G, por kjo i pengonte. Tani, kjo mb suporton.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: mund\u00ebsi t\u00eb reja dhe zgjerimi i komunitetit. Georgi Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/95ec319ccefa7e6c8bce193317407229.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Nj\u00eb funksion tjet\u00ebr q\u00eb na solli kursi yn\u00eb i specializuar \u00ebsht\u00eb catchup. Rreth catchup e din\u00eb njer\u00ebzit q\u00eb ndoshta kan\u00eb punuar m\u00eb shum\u00eb me Oracle se sa me Postgres.<\/p>\n<p><\/p>\n<p>Nj\u00eb p\u00ebrmbledhje e asaj se \u00e7far\u00eb \u00ebsht\u00eb. K\u00ebshtu mund t\u00eb duket zakonisht topologjia e klasterit n\u00eb sh\u00ebrbimin ton\u00eb. Kemi nj\u00eb master. Ka nj\u00eb replik\u00eb q\u00eb transmeton nga t\u00eb ajo logun para-shkruese. Dhe riplikimi e thot\u00eb masterit n\u00eb cilin LSN ndodhet aktualisht. Dhe ndoshta paralelisht me k\u00ebt\u00eb, mund t\u00eb arkivohet jurnali. P\u00ebrve\u00e7 arkivimit t\u00eb jurnalit, po ashtu d\u00ebrgohen backupet n\u00eb re. Dhe d\u00ebrgohen backupet delta.<\/p>\n<p><\/p>\n<p>Cila mund t\u00eb jet\u00eb problemi? Kur keni nj\u00eb baz\u00eb mjaft t\u00eb madhe, mund t\u00eb ndodh\u00eb q\u00eb riplikimi fillon t\u00eb mbetet shum\u00eb pas masterit. Dhe ai mbetet kaq shum\u00eb pas, saq\u00eb nuk mund ta arrij\u00eb kurr\u00eb. Ky problem zakonisht duhet zgjidhur n\u00eb nj\u00eb far\u00eb m\u00ebnyre. <\/p>\n<p><\/p>\n<p>Dhe m\u00ebnyra m\u00eb e thjesht\u00eb \u00ebsht\u00eb t\u00eb hiqni replikimin dhe ta ringarkoni at\u00eb nga e para, sepse ajo nuk do t\u00eb arrij\u00eb kurr\u00eb m\u00eb, dhe me problemin duhet t\u00eb merremi. Por kjo \u00ebsht\u00eb shum\u00eb e gjat\u00eb, sepse rikthimi i nj\u00eb backupi t\u00eb plot\u00eb t\u00eb nj\u00eb baze prej 10 TB \u00ebsht\u00eb shum\u00eb, shum\u00eb e gjat\u00eb. Dhe ne duam ta b\u00ebjm\u00eb gjith\u00e7ka sa m\u00eb shpejt t\u00eb jet\u00eb e mundur, n\u00ebse ndodhin probleme t\u00eb tilla. Dhe pik\u00ebrisht p\u00ebr k\u00ebt\u00eb \u00ebsht\u00eb menduar catchup.<\/p>\n<p><\/p>\n<p>Catchup lejon\u00eb p\u00ebrdorimin e delta-backup-eve, t\u00eb cilat ruhen n\u00eb re n\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb. Ju tregoni se n\u00eb cilin LSN ndodhet tani replika q\u00eb \u00ebsht\u00eb pas, dhe e specificoni at\u00eb n\u00eb komand\u00ebn catchup p\u00ebr t\u00eb krijuar nj\u00eb delta-backup mes atij LSN dhe LSN n\u00eb t\u00eb cilin ndodhet tani klasteri juaj. M\u00eb pas, e ristab\u00eblsoni k\u00ebt\u00eb backup n\u00eb replik\u00ebn q\u00eb ishte pas.<\/p>\n<p><\/p>\n<p><strong>T\u00eb tjera baza<\/strong><\/p>\n<p><\/p>\n<p>Gjithashtu, student\u00ebt na soll\u00ebn menj\u00ebher\u00eb shum\u00eb karakteristika. Pasi ne n\u00eb Yandex zhvillojm\u00eb jo vet\u00ebm Postgres, kemi gjithashtu MySQL, MongoDB, Redis, ClickHouse, ndodhi q\u00eb n\u00eb nj\u00eb moment na duhej t\u00eb mundeshim t\u00eb b\u00ebnim backup me rikuperim nga pik\u00eb n\u00eb koh\u00eb p\u00ebr MySQL, dhe q\u00eb kishte mund\u00ebsin\u00eb t'i ngarkonim ato n\u00eb re.<\/p>\n<p><\/p>\n<p>Dhe d\u00ebshironim ta b\u00ebnim k\u00ebt\u00eb n\u00eb nj\u00eb m\u00ebnyr\u00eb t\u00eb ngjashme me m\u00ebnyr\u00ebn se si e b\u00ebn WAL-G. Prandaj, vendos\u00ebm t\u00eb eksperimentojm\u00eb dhe t\u00eb shohim si do t\u00eb duket tutto.<\/p>\n<p><\/p>\n<p>Dhe n\u00eb fillim, duke mos e ndar\u00eb fare k\u00ebt\u00eb logjik\u00eb n\u00eb fork, shkruam kodin. E pash\u00eb se kishim nj\u00eb model funksional dhe mund t\u00eb funksiononte. M\u00eb pas, menduam se komuniteti yn\u00eb kryesor \u00ebsht\u00eb postgres\u2019ist\u00ebt, ata p\u00ebrdorin WAL-G. Prandaj, duhet t\u00eb ndajm\u00eb ndonj\u00ebher\u00eb k\u00ebto pjes\u00eb. K\u00ebshtu q\u00eb, kur rregullojm\u00eb kodin p\u00ebr Postgres, nuk prishim MySQL; kur rregullojm\u00eb MySQL, nuk prishim Postgres.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: mund\u00ebsi t\u00eb reja dhe zgjerimi i komunitetit. Georgi Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/deef7615eaeb0b8bd790fb253cc42312.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ideja e par\u00eb p\u00ebr ndarjen e k\u00ebtij procesi ishte t\u00eb p\u00ebrdorej i nj\u00ebjti qasje si\u00e7 p\u00ebrdoret n\u00eb zgjerimet e PostgreSQL. Dhe, n\u00eb thelb, p\u00ebr t\u00eb b\u00ebr\u00eb nj\u00eb backup t\u00eb MySQL, duhet t\u00eb instalonit nj\u00eb bibliotek\u00eb dinamike. <\/p>\n<p><\/p>\n<p>Por k\u00ebtu duket menj\u00ebher\u00eb asimetria e k\u00ebtij qasje. Kur b\u00ebni backup n\u00eb Postgres, instaloni nj\u00eb backup t\u00eb zakonshme p\u00ebr Postgres dhe gjith\u00e7ka shkon mir\u00eb. Nd\u00ebrsa p\u00ebr MySQL, rezulton se instaloni nj\u00eb backup p\u00ebr Postgres dhe m\u00eb pas nj\u00eb bibliotek\u00eb dinamike p\u00ebr MySQL. Ting\u00ebllon ndoshta pak \u00e7uditsh\u00ebm. Edhe ne menduam k\u00ebshtu dhe vendos\u00ebm q\u00eb ky nuk \u00ebsht\u00eb zgjidhja q\u00eb na nevojitet. <\/p>\n<p><\/p>\n<p><strong>Ndarje t\u00eb ndryshme p\u00ebr Postgres, MySQL, MongoDB, Redis<\/strong><\/p>\n<p><\/p>\n<p>Por kjo na lejoi, si\u00e7 mendojm\u00eb ne, t\u00eb arrijm\u00eb n\u00eb zgjidhjen e duhur \u2013 t\u00eb ndashin ndarjet e ndryshme p\u00ebr baza t\u00eb ndryshme. Kjo lejon izolimin e logjik\u00ebs q\u00eb lidhet me backupet e ndryshme t\u00eb bazave t\u00eb t\u00eb dh\u00ebnave, t\u00eb cilat do t\u00eb drejtohen ndaj nj\u00eb API t\u00eb p\u00ebrbashk\u00ebt q\u00eb implementon WAL-G.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: mund\u00ebsi t\u00eb reja dhe zgjerimi i komunitetit. Georgi Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/6c810d5f065de06fc200bdd028707318.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kjo \u00ebsht\u00eb pjesa q\u00eb e shkruam vet\u00eb \u2013 para se t\u2019u jepnim student\u00ebve detyra. Kjo \u00ebsht\u00eb pik\u00ebrisht pjesa ku ata mund t\u00eb b\u00ebnin di\u00e7ka gabim, prandaj vendos\u00ebm q\u00eb \u00ebsht\u00eb m\u00eb mir\u00eb t\u00eb b\u00ebjm\u00eb di\u00e7ka si\u00e7 duhet dhe gjith\u00e7ka do t\u00eb shkoj\u00eb mir\u00eb. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: mund\u00ebsi t\u00eb reja dhe zgjerimi i komunitetit. Georgi Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/3a864a85bfb820ef64cbacc029a9198c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Pas k\u00ebtij, ne l\u00ebshuam disa detyra. Ato u mor\u00ebn menj\u00ebher\u00eb. Nga student\u00ebt k\u00ebrkohej t\u00eb mb\u00ebshtesnin tri baza t\u00eb dh\u00ebnash. <\/p>\n<p><\/p>\n<p>Kjo \u00ebsht\u00eb MySQL, e cila ne e rezervojm\u00eb me ndihm\u00ebn e WAL-G n\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb tashm\u00eb m\u00eb shum\u00eb se nj\u00eb vit. <\/p>\n<p><\/p>\n<p>Dhe tani MongoDB po i afrohet prodhimit, aty po e p\u00ebrmir\u00ebsojn\u00eb me dor\u00eb. N\u00eb thelb, ne shkruam korniz\u00ebn p\u00ebr t\u00eb gjitha k\u00ebto. M\u00eb pas student\u00ebt shkruan disa gj\u00ebra funksionale. Dhe pastaj ne i \u00e7ojm\u00eb ato n\u00eb nj\u00eb gjendje q\u00eb mund t\u00eb pranojm\u00eb n\u00eb prodhimin ton\u00eb.<\/p>\n<p><\/p>\n<p>K\u00ebto detyra nuk dukeshin ashtu q\u00eb student\u00ebt duhej t\u00eb shkruanin mjete back-up t\u00eb plota p\u00ebr secil\u00ebn nga k\u00ebto baza. Ne nuk kishim k\u00ebt\u00eb problem. Problemi yn\u00eb ishte se donim rikuperim n\u00eb pik\u00eb t\u00eb koh\u00ebs dhe donim t\u00eb b\u00ebnim rezerv\u00eb n\u00eb cloud. Dhe k\u00ebrkuam nga student\u00ebt t\u00eb shkruanin ndonj\u00eb kod, i cili do t\u00eb zgjidhte k\u00ebt\u00eb. Student\u00ebt shfryt\u00ebzuan mjete rezerv\u00eb ekzistuese, t\u00eb cilat e b\u00ebjn\u00eb rezervimin, dhe pastaj e lidh\u00ebn k\u00ebt\u00eb me WAL-G, q\u00eb e d\u00ebrgonte gjith\u00e7ka n\u00eb cloud. Po k\u00ebshtu, ata shtuan rikuperim n\u00eb pik\u00eb t\u00eb koh\u00ebs.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: mund\u00ebsi t\u00eb reja dhe zgjerimi i komunitetit. Georgi Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/7494aef259c7599e8bf0b70d77e1bb09.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00c7far\u00eb tjet\u00ebr soll\u00ebn student\u00ebt? Ata soll\u00ebn n\u00eb WAL-G mb\u00ebshtetje p\u00ebr enkriptimin Libsodium.<\/p>\n<p><\/p>\n<p>Tani kemi politika t\u00eb ruajtjes s\u00eb kopjeve rezerv\u00eb. Tani kopjet rezerv\u00eb mund t\u00eb sh\u00ebnohen si t\u00eb p\u00ebrhershme. Dhe nd\u00ebrlikon m\u00eb shum\u00eb q\u00eb p\u00ebr sh\u00ebrbimin tuaj t\u00eb automatizoni procesin e ruajtjes s\u00eb tyre. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: mund\u00ebsi t\u00eb reja dhe zgjerimi i komunitetit. Georgi Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/6e932ab13dbc3119f7f1da1122443b10.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00c7far\u00eb rezultati u arrit nga ky eksperiment?<\/p>\n<p><\/p>\n<p>P\u00ebr kursin fillimisht ishin regjistruar m\u00eb shum\u00eb se 100 persona. N\u00eb fillim nuk thash\u00eb se universiteti n\u00eb Jekaterinburg \u00ebsht\u00eb Universitete Federale Ural. Aty e kemi njoftuar gjith\u00e7ka. 100 persona u regjistruan. N\u00eb realitet, di\u00e7ka filloi t\u00eb b\u00ebhej shum\u00eb m\u00eb pak, rreth 30 persona. <\/p>\n<p><\/p>\n<p>Kurset e mbyll\u00ebn edhe m\u00eb pak njer\u00ebz, sepse duhej t\u00eb shkruhen teste p\u00ebr kodet q\u00eb tashm\u00eb ekzistojn\u00eb. Dhe gjithashtu t\u00eb rregullohet ndonj\u00eb bug ose t\u00eb b\u00ebhet ndonj\u00eb funksion. Dhe disa student\u00eb e mbyll\u00ebn kursin.<\/p>\n<p><\/p>\n<p>N\u00eb k\u00ebt\u00eb moment, student\u00ebt p\u00ebr k\u00ebt\u00eb kurs kan\u00eb ndrequr rreth 14 issues, kan\u00eb b\u00ebr\u00eb 10 funksione t\u00eb ndryshme. Dhe, si\u00e7 mendoj, kjo \u00ebsht\u00eb nj\u00eb z\u00ebvend\u00ebsim i plot\u00eb p\u00ebr nj\u00eb ose dy zhvillues. <\/p>\n<p><\/p>\n<p>P\u00ebrve\u00e7 gjith\u00e7kaje, ne ndam\u00eb diploma dhe projekte kursi. Dhe 12 mor\u00ebn diplom\u00ebn. 6 prej tyre tashm\u00eb e kan\u00eb mbrojtur me nota '5'. P\u00ebr t\u00eb tjer\u00ebt mbrojtjet nuk kan\u00eb ndodhur ende, por mendoj se gjithashtu do t'iu shkoj\u00eb mir\u00eb. <\/p>\n<p><\/p>\n<p>Planet p\u00ebr t\u00eb ardhmen<\/p>\n<p><\/p>\n<p>\u00c7far\u00eb plane kemi p\u00ebr t\u00eb ardhmen?<\/p>\n<p><\/p>\n<p>S\u00eb paku, k\u00ebto jan\u00eb disa nga karakteristikat q\u00eb kemi d\u00ebgjuar nga p\u00ebrdoruesit dhe d\u00ebshirojm\u00eb t'i realizojm\u00eb. K\u00ebto p\u00ebrfshijn\u00eb:<\/p>\n<p><\/p>\n<ul>\n<li>Monitorimi i sakt\u00ebsis\u00eb s\u00eb ndjekjes s\u00eb kronologjis\u00eb n\u00eb arkiv\u00ebn e backup-eve t\u00eb klasterit HA. Me ndihm\u00ebn e WAL-G, kjo \u00ebsht\u00eb e mundur. Dhe mendoj se do t\u00eb kemi student\u00eb t\u00eb gatsh\u00ebm p\u00ebr ta marr\u00eb p\u00ebrsip\u00ebr k\u00ebt\u00eb. <\/li>\n<li>P\u00ebr migrimin e backup-eve dhe WAL-it midis mjeteve tona, kemi tashm\u00eb nj\u00eb person t\u00eb caktuar p\u00ebrgjegj\u00ebs. <\/li>\n<li>Kemi publikuar s\u00eb fundmi iden\u00eb se mund ta akcelerojm\u00eb edhe m\u00eb shum\u00eb WAL-G-n\u00eb p\u00ebrmes shp\u00ebrndarjes s\u00eb backup-eve inkrementale pa rinovimin e faqeve dhe optimizimin e arkivave q\u00eb i d\u00ebrgojm\u00eb atje. <\/li>\n<\/ul>\n<p><\/p>\n<p>Mund t\u00eb ndani ato k\u00ebtu<\/p>\n<p><\/p>\n<p>\u00c7far\u00eb p\u00ebrcolli ky raport? Tani, p\u00ebrve\u00e7 kat\u00ebr nesh q\u00eb mb\u00ebshtesim k\u00ebt\u00eb projekt, kemi gjithashtu duar shtes\u00eb, t\u00eb cilat jan\u00eb mjaft t\u00eb shumta. Sidomos n\u00ebse iu shkruani n\u00eb mesazh t\u00eb drejtp\u00ebrdrejt\u00eb. Dhe n\u00ebse b\u00ebni backup t\u00eb t\u00eb dh\u00ebnave tuaja dhe e b\u00ebni k\u00ebt\u00eb me ndihm\u00ebn e WAL-G, ose n\u00ebse do t\u00eb d\u00ebshironit t\u00eb migroni n\u00eb WAL-G, at\u00ebher\u00eb ne mund t'i marrim d\u00ebshirat tuaja n\u00eb konsiderat\u00eb mjaft leht\u00ebsisht.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: mund\u00ebsi t\u00eb reja dhe zgjerimi i komunitetit. Georgi Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/7b0dc1633121ea6493610b08f68a14d2.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ky \u00ebsht\u00eb kodi qr dhe lidhja. Mund t\u00eb kaloni p\u00ebrmes tyre dhe t\u00eb shkruani t\u00eb gjitha d\u00ebshirat tuaja. P\u00ebr shembull, ne nuk e rregullojm\u00eb ndonj\u00eb bog. Ose ndonj\u00eb tipar q\u00eb ju e d\u00ebshironit shum\u00eb, por p\u00ebr ndonj\u00eb arsye nuk \u00ebsht\u00eb ende n\u00eb asnj\u00eb rezerv\u00eb, p\u00ebrfshir\u00eb edhe ton\u00ebn. Sigurohuni q\u00eb t\u00eb shkruani p\u00ebr k\u00ebt\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: mund\u00ebsi t\u00eb reja dhe zgjerimi i komunitetit. Georgi Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/56f1c4eef8522d2d6628ea98b1278846.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Pyetje<\/p>\n<p><\/p>\n<p><em>P\u00ebrsh\u00ebndetje! Faleminderit p\u00ebr raportin! Kam nj\u00eb pyetje p\u00ebr WAL-G, por jo p\u00ebr Postgres. WAL-G b\u00ebn backup p\u00ebr MySQL dhe th\u00ebrret ekstra-ndihm\u00eb. N\u00ebse merrni instalimet moderne n\u00eb CentOS dhe n\u00ebse b\u00ebni yum install MySQL, do t\u00eb instalohet MariDB. Q\u00eb nga versioni 10.3, ekstra-ndihma nuk mb\u00ebshtetet, mb\u00ebshtetet MariDB-backup. Si e keni situat\u00ebn me k\u00ebt\u00eb?<\/em><\/p>\n<p><\/p>\n<p>N\u00eb k\u00ebt\u00eb moment nuk kemi provuar t\u00eb b\u00ebjm\u00eb backup p\u00ebr MariDB. Kishim k\u00ebrkesa p\u00ebr mb\u00ebshtetje p\u00ebr FoundationDB, por n\u00eb p\u00ebrgjith\u00ebsi, n\u00ebse ka nj\u00eb k\u00ebrkes\u00eb t\u00eb till\u00eb, mund t\u00eb gjejm\u00eb njer\u00ebz q\u00eb munden ta b\u00ebjn\u00eb k\u00ebt\u00eb. Nuk \u00ebsht\u00eb kaq e gjat\u00eb dhe as kaq e leht\u00eb, sa m\u00eb duket.<\/p>\n<p><\/p>\n<p><em>Mir\u00ebdita! Faleminderit p\u00ebr raportin! Kam nj\u00eb pyetje p\u00ebr potencialisht tiparet e reja. A jeni t\u00eb gatsh\u00ebm ta b\u00ebni WAL-G t\u00eb punoj\u00eb me kasetat, n\u00eb m\u00ebnyr\u00eb q\u00eb t\u00eb mund t\u00eb b\u00ebni backup n\u00eb kaseta?<\/em><\/p>\n<p><\/p>\n<p>A \u00ebsht\u00eb backup n\u00eb ruajtjen me kaseta q\u00eb i referoheni?<\/p>\n<p><\/p>\n<p><em>Po.<\/em><\/p>\n<p><\/p>\n<p>Atje \u00ebsht\u00eb Andrei Borodin, i cili mund t\u00eb p\u00ebrgjigjet m\u00eb mir\u00eb p\u00ebr k\u00ebt\u00eb \u00e7\u00ebshtje se sa un\u00eb. <\/p>\n<p><\/p>\n<p>(Andi) Po, faleminderit p\u00ebr pyetjen! Kemi pasur nj\u00eb k\u00ebrkes\u00eb p\u00ebr t\u00eb transferuar nj\u00eb backup n\u00eb kaset\u00eb nga ruajtja cloud. Dhe p\u00ebr k\u00ebt\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wal-g\/wal-g\/pull\/596\">punohet<\/a><\/noindex> transferimi mes cloud-eve. Sepse transferimi mes cloud-eve \u00ebsht\u00eb nj\u00eb version i p\u00ebrgjithsh\u00ebm i transferimit n\u00eb kaset\u00eb. P\u00ebr m\u00eb tep\u00ebr, kemi nj\u00eb arkitektur\u00eb t\u00eb zgjerueshme n\u00eb pjes\u00ebn e Ruajtjes. Nga ana tjet\u00ebr, shum\u00eb nga Ruajtjet jan\u00eb shkruar nga student\u00ebt. Dhe n\u00ebse shkruani nj\u00eb Ruajtje p\u00ebr kaset\u00ebn, at\u00ebher\u00eb sigurisht q\u00eb do t\u00eb mb\u00ebshtetet. Jemi t\u00eb gatsh\u00ebm t\u00eb shqyrtojm\u00eb pull request-et. Duhet t\u00eb shkruhet nj\u00eb sked\u00eb, t\u00eb lexoni sked\u00ebn. N\u00ebse k\u00ebto gj\u00ebra realizohen n\u00eb Go, zakonisht dalin 50 rreshta kodi. At\u00ebher\u00eb n\u00eb WAL-G do t\u00eb mb\u00ebshtetet kaseta. <\/p>\n<p><\/p>\n<p><em>Faleminderit p\u00ebr raportin! Nj\u00eb proces zhvillimi interesant. Backup-i \u00ebsht\u00eb nj\u00eb pjes\u00eb serioze e funksionalitetit q\u00eb duhet t\u00eb mbulohet mir\u00eb me teste. Ju, kur realizuat funksionalitetin p\u00ebr bazat e reja, a i keni shkruar testet student\u00ebt ose i keni shkruar ju vet\u00eb testet dhe pastaj ua keni dor\u00ebzuar realizimin student\u00ebve?<\/em><\/p>\n<p><\/p>\n<p>Testet i kan\u00eb shkruar gjithashtu student\u00ebt. Por student\u00ebt kan\u00eb shkruar m\u00eb shum\u00eb p\u00ebr tipologji t\u00eb tilla si bazat e reja. Ata shkruan teste integruese. Dhe ata shkruan teste nj\u00ebsi. N\u00ebse testet integruese kalojn\u00eb, dmth tani \u2013 ky \u00ebsht\u00eb skenari q\u00eb e ekzekutoni me duar ose e b\u00ebn cron, p\u00ebr shembull. Pra, ky skenar \u00ebsht\u00eb shum\u00eb i qart\u00eb. <\/p>\n<p><\/p>\n<p><em>Student\u00ebt nuk kan\u00eb shum\u00eb p\u00ebrvoj\u00eb. A shpenzohet shum\u00eb koh\u00eb p\u00ebr rishikim?<\/em><\/p>\n<p><\/p>\n<p>Po, rishikimi merr mjaft koh\u00eb. Pra, zakonisht, kur vijn\u00eb disa kontribues menj\u00ebher\u00eb dhe thon\u00eb se un\u00eb b\u00ebra k\u00ebt\u00eb, un\u00eb b\u00ebra at\u00eb, \u00ebsht\u00eb e nevojshme t\u00eb mendoni dhe t\u00eb rezervoni diku gjysm\u00ebn e dit\u00ebs p\u00ebr t\u00eb kuptuar se \u00e7far\u00eb kan\u00eb shkruar. Sepse kodi duhet t\u00eb lexohet me kujdes. Ata nuk kaluan intervista. Ne nuk i njohim shum\u00eb mir\u00eb, prandaj kjo merr nj\u00eb koh\u00eb t\u00eb konsiderueshme.<\/p>\n<p><\/p>\n<p><em>Faleminderit p\u00ebr raportin! M\u00eb par\u00eb, Andrey Borodin deklaroi se archive_command n\u00eb WAL-G duhet t\u00eb thirret drejtp\u00ebrdrejt. Por n\u00eb rastin e ndonj\u00eb klasteri patron, na nevojitet nj\u00eb logjik\u00eb t\u00eb shtuar p\u00ebr t\u00eb p\u00ebrcaktuar nodin nga i cili t\u00eb d\u00ebrgojm\u00eb val\u00ebt. Si e zgjidhni ju k\u00ebt\u00eb problem?<\/em><\/p>\n<p><\/p>\n<p>N\u00eb \u00e7far\u00eb problemi po p\u00ebrballeni k\u00ebtu? Supozoni se keni nj\u00eb replik\u00eb sinkrone nga e cila po merrni kopje rezerv\u00eb? Ose \u00e7far\u00eb?<\/p>\n<p><\/p>\n<p>(Andrei) Problemi \u00ebsht\u00eb se v\u00ebrtet WAL-G parashikon p\u00ebrdorimin pa shell-skripte. N\u00ebse di\u00e7ka mungon, le t\u00eb shkruajm\u00eb logjik\u00ebn q\u00eb duhet t\u00eb jet\u00eb brenda WAL-G. Sa i p\u00ebrket burimit nga e cila duhet t\u00eb b\u00ebhet arkivimi, ne besojm\u00eb se arkivimi duhet t\u00eb b\u00ebhet nga master-i aktual n\u00eb klaster. Arkivimi nga replika \u00ebsht\u00eb nj\u00eb ide e keqe. Ka skenar\u00eb t\u00eb ndrysh\u00ebm me probleme. N\u00eb ve\u00e7anti, probleme me arkivimin e linjave t\u00eb koh\u00ebs dhe informacionit t\u00eb tjera shtes\u00eb. Faleminderit p\u00ebr pyetjen!<\/p>\n<p><\/p>\n<p>(Sqarim: U hoq\u00ebn skriptet shell) <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wal-g\/wal-g\/issues\/549\">n\u00eb k\u00ebt\u00eb issue<\/a><\/noindex>)<\/p>\n<p><\/p>\n<p><em>Mir\u00ebm\u00ebngjes! Faleminderit p\u00ebr prezantimin! M\u00eb interesoi karakteristika catchup, p\u00ebr t\u00eb cil\u00ebn treguat. Keni hasur n\u00eb situata kur replika po vonohej dhe s\u2019po arrinte t\u00eb p\u00ebrputhej. Dhe un\u00eb n\u00eb WAL-G nuk e gjeta p\u00ebrshkrimin e k\u00ebsaj ve\u00e7orie n\u00eb dokumentacione.<\/em><\/p>\n<p><\/p>\n<p>Catchup u shfaq dosido n\u00eb fundjav\u00ebn e 20-t\u00eb t\u00eb janarit 2020. Mund t\u00eb merret m\u00eb mir\u00eb me dokumentacionin. Ne e shkruajm\u00eb dhe nuk e shkruajm\u00eb ashtu si\u00e7 duhet. Dhe ndoshta duhen k\u00ebrkuar nga student\u00ebt q\u00eb ta shkruajn\u00eb ata.<\/p>\n<p><\/p>\n<p><em>A \u00ebsht\u00eb n\u00eb l\u00ebshim tashm\u00eb?<\/em><\/p>\n<p><\/p>\n<p>K\u00ebrkesa p\u00ebr t\u00ebrheqje \u00ebsht\u00eb miratuar tashm\u00eb, q\u00eb do t\u00eb thot\u00eb se un\u00eb e kam kontrolluar at\u00eb. E kam provuar n\u00eb klasterin e testimit. Deri tani, nuk kemi pasur situata ku mund t\u00eb kontrollonim k\u00ebt\u00eb n\u00eb nj\u00eb shembull n\u00eb prodhim.<\/p>\n<p><\/p>\n<p><em>Kur t\u00eb pritet?<\/em><\/p>\n<p><\/p>\n<p>Nuk e di. Prisni nj\u00eb muaj, do ta verifikojm\u00eb me siguri.<\/p>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/498428\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u043d\u0430\u0447\u0430\u043b\u0430 2020 \u0433\u043e\u0434\u0430 \u0413\u0435\u043e\u0440\u0433\u0438\u044f \u0420\u044b\u043b\u043e\u0432\u0430 &quot;WAL-G: \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430&quot; \u0423 \u043c\u0435\u0438\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 open-source \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043f\u043e \u043c\u0435\u0440\u0435 \u0438\u0445 \u0440\u043e\u0441\u0442\u0430. \u041a\u0430\u043a \u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0441\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0445 \u0444\u0438\u0447, \u0447\u0438\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 issues&#8217;\u043e\u0432 \u0438 \u0443\u0441\u043f\u0435\u0432\u0430\u0442\u044c \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0441\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 pull request&#8217;\u043e\u0432? \u041d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 WAL-G(backup-tool for PostgreSQL) \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043f\u0440\u043e \u0442\u043e, \u043a\u0430\u043a \u043c\u044b \u0440\u0435\u0448\u0430\u043b\u0438 \u044d\u0442\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":78888,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-78887","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\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u043d\u0430\u0447\u0430\u043b\u0430 2020 \u0433\u043e\u0434\u0430 \u0413\u0435\u043e\u0440\u0433\u0438\u044f \u0420\u044b\u043b\u043e\u0432\u0430 &quot;WAL-G: \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430&quot; \u0423 \u043c\u0435\u0438\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 open-source \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043f\u043e \u043c\u0435\u0440\u0435 \u0438\u0445 \u0440\u043e\u0441\u0442\u0430. \u041a\u0430\u043a \u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0441\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0445 \u0444\u0438\u0447, \u0447\u0438\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 issues&#039;\u043e\u0432 \u0438 \u0443\u0441\u043f\u0435\u0432\u0430\u0442\u044c \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0441\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 pull request&#039;\u043e\u0432? \u041d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 WAL-G(backup-tool for PostgreSQL) \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043f\u0440\u043e \u0442\u043e, \u043a\u0430\u043a \u043c\u044b \u0440\u0435\u0448\u0430\u043b\u0438 \u044d\u0442\u0438\" \/>\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\/wal-g-novye-vozmozhnosti-i-rasshirenie-soobshhestva-georgij-rylov\" \/>\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\udd47WAL-G: \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430. \u0413\u0435\u043e\u0440\u0433\u0438\u0439 \u0420\u044b\u043b\u043e\u0432 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u043d\u0430\u0447\u0430\u043b\u0430 2020 \u0433\u043e\u0434\u0430 \u0413\u0435\u043e\u0440\u0433\u0438\u044f \u0420\u044b\u043b\u043e\u0432\u0430 &quot;WAL-G: \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430&quot; \u0423 \u043c\u0435\u0438\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 open-source \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043f\u043e \u043c\u0435\u0440\u0435 \u0438\u0445 \u0440\u043e\u0441\u0442\u0430. \u041a\u0430\u043a \u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0441\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0445 \u0444\u0438\u0447, \u0447\u0438\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 issues&#039;\u043e\u0432 \u0438 \u0443\u0441\u043f\u0435\u0432\u0430\u0442\u044c \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0441\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 pull request&#039;\u043e\u0432? \u041d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 WAL-G(backup-tool for PostgreSQL) \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043f\u0440\u043e \u0442\u043e, \u043a\u0430\u043a \u043c\u044b \u0440\u0435\u0448\u0430\u043b\u0438 \u044d\u0442\u0438\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/wal-g-novye-vozmozhnosti-i-rasshirenie-soobshhestva-georgij-rylov\" \/>\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-04-22T17:42:51+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-04-22T17:42:51+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\udd47WAL-G: mund\u00ebsi t\u00eb reja dhe zgjerimi i komunitetit. Georgy Rylov | ProHoster","description":"Propozoj q\u00eb t\u00eb shqyrtoni shpjegimin e raportit t\u00eb fillimit t\u00eb vitit 2020 nga Georgy Rylov \"WAL-G: mund\u00ebsi t\u00eb reja dhe zgjerimi i komunitetit\". P\u00ebrmbajt\u00ebsit e open-source p\u00ebrballen me shum\u00eb sfida gjat\u00eb rritjes s\u00eb tyre. Si t\u00eb shkruash m\u00eb shum\u00eb karakteristika t\u00eb k\u00ebrkuara, t\u00eb rregullosh m\u00eb shum\u00eb probleme dhe t\u00eb arrish t\u00eb shikosh m\u00eb shum\u00eb k\u00ebrkesa p\u00ebr t\u00ebrheqje? Duke marr\u00eb si shembull WAL-G (mjeti i kopjimit p\u00ebr PostgreSQL), do t\u00eb flas p\u00ebr m\u00ebnyr\u00ebn se si ne zgjidh\u00ebm k\u00ebto","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/wal-g-novye-vozmozhnosti-i-rasshirenie-soobshhestva-georgij-rylov","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\udd47WAL-G: \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430. \u0413\u0435\u043e\u0440\u0433\u0438\u0439 \u0420\u044b\u043b\u043e\u0432 | ProHoster","og:description":"\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u043d\u0430\u0447\u0430\u043b\u0430 2020 \u0433\u043e\u0434\u0430 \u0413\u0435\u043e\u0440\u0433\u0438\u044f \u0420\u044b\u043b\u043e\u0432\u0430 &quot;WAL-G: \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430&quot; \u0423 \u043c\u0435\u0438\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 open-source \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043f\u043e \u043c\u0435\u0440\u0435 \u0438\u0445 \u0440\u043e\u0441\u0442\u0430. \u041a\u0430\u043a \u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0441\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0445 \u0444\u0438\u0447, \u0447\u0438\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 issues'\u043e\u0432 \u0438 \u0443\u0441\u043f\u0435\u0432\u0430\u0442\u044c \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0441\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 pull request'\u043e\u0432? \u041d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 WAL-G(backup-tool for PostgreSQL) \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043f\u0440\u043e \u0442\u043e, \u043a\u0430\u043a \u043c\u044b \u0440\u0435\u0448\u0430\u043b\u0438 \u044d\u0442\u0438","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/wal-g-novye-vozmozhnosti-i-rasshirenie-soobshhestva-georgij-rylov","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-04-22T17:42:51+00:00","article:modified_time":"2020-04-22T17:42:51+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"78887","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 16:49:45","updated":"2022-09-29 18:48:15"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/78887","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=78887"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/78887\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/78888"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=78887"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=78887"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=78887"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}