{"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\/et\/blog\/administrirovanie\/wal-g-novye-vozmozhnosti-i-rasshirenie-soobshhestva-georgij-rylov","title":{"rendered":"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgi R\u00f5lov","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: uued v\u00f5imalused ja kogukonna laienemine. Georgi R\u00f5lov\" 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>Tere k\u00f5igile veel kord! Olen arendaja Yandexis Jekaterinburgis. T\u00e4na r\u00e4\u00e4gin WAL-G-st.<\/p>\n<p><\/p>\n<p>Ettekanne pealkirjas ei olnud \u00f6eldud, et see on seotud varundustega. Kas keegi ei tea, mis on WAL-G? Kas k\u00f5ik teavad? Palun t\u00f5stke k\u00e4si, kes ei tea. J\u00f5hkralt, te tulite ettekanne kuulama ja ei tea, millest see on.<\/p>\n<p><\/p>\n<p>Las ma r\u00e4\u00e4gin, mis t\u00e4na toimub. Meie meeskond on juba m\u00f5nda aega varundamisega tegelenud. See on veel \u00fcks ettekande osa seeriast, kus r\u00e4\u00e4gime sellest, kuidas me hoiame andmeid turvaliselt, usaldusv\u00e4\u00e4rselt, mugavalt ja efektiivselt.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgi R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/4307e7b2acc60cd908d91e3f1b83a9b6.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Eelnevad osad sisaldasid palju ettekandeid Andrei Borodini ja Vladimir Leskovi poolt. Meid oli palju. Ja me k\u00f5ik oleme r\u00e4\u00e4kinud WAL-G-st juba palju aastaid. <\/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>See ettekanne erineb veidi teistest, kuna see keskendub rohkem tehnilisele poolele. R\u00e4\u00e4gin, kuidas me kohtasime probleemidega, mis olid seotud kogukonna kasvuga. Ja kuidas me m\u00f5tlesime v\u00e4lja v\u00e4ikese ideed, mis aitab meil sellega toime tulla. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgi R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/ec728f7d99ea9b6a5df4785d7e8a2a75.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>M\u00f5ned aastad tagasi oli WAL-G \u00fcsna v\u00e4ike projekt, mille saime Citus Datalt. Me lihtsalt v\u00f5tsime selle \u00fcle. Ja seda arendas ainult \u00fcks inimene.<\/p>\n<p><\/p>\n<p>Ja WAL-G-s ei olnud:<\/p>\n<p><\/p>\n<ul>\n<li>Replikatsioonist varukoopiaid.<\/li>\n<li>Ei olnud inkrementaalset varukoopiaid.<\/li>\n<li>Ei olnud WAL-Delta varukoopiaid. <\/li>\n<li>Ja veel palju muud polnud.<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Nende aastate jooksul on WAL-G tugevasti kasvanud.<\/strong> <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgi R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/16700dfcc2c54539c5a064894cd1ec88.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ja 2020. aastaks olid k\u00f5ik \u00fclaltoodud omadused juba olemas. Ja sellele lisandus veel see, et meil on n\u00fc\u00fcd:<\/p>\n<p><\/p>\n<ul>\n<li>Rohkem kui 1 000 t\u00e4hte GitHubis.<\/li>\n<li>150 fork'i.<\/li>\n<li>Umbes 15 avatud PR-i.<\/li>\n<li>Ja veel palju kontribuutoreid. <\/li>\n<li>Ja avatud probleeme on pidevalt. Ja see on arvestades, et me k\u00e4ime seal s\u00f5na otseses m\u00f5ttes iga p\u00e4ev ja teeme midagi selle nimel. <\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgi R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/5e5dea14b328a7f0437017ca834d1eaf.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ja j\u00f5udsime j\u00e4reldusele, et see projekt vajab rohkem meie t\u00e4helepanu, isegi siis, kui meil endil ei ole vaja midagi meie hallatavate andmebaaside teenuse jaoks Yandext rakendada.<\/p>\n<p><\/p>\n<p>Ja kuskil 2018. aasta s\u00fcgisel tuli meile idee. Tavaliseeriti, et meeskonnal on mitmeid viise, kuidas funktsioone arendada ja vigu parandada, kui k\u00e4si on puudu. N\u00e4iteks v\u00f5ite palgata veel \u00fche arendaja ja maksta talle raha. V\u00f5i v\u00f5ite v\u00f5tta praktikandi teatud ajaks ja maksta ka talle mingit palka. Kuid on ka veel p\u00e4ris suur hulk inimesi, kellest osa oskab juba tegelikult koodi kirjutada. Lihtsalt te ei tea alati, millise kvaliteediga see kood on.<\/p>\n<p><\/p>\n<p>Oleme m\u00f5elnud ja otsustanud \u00fcritada tudengeid kaasata. Kuid tudengid ei osale meil k\u00f5iges. Nad teevad ainult osa t\u00f6\u00f6st. N\u00e4iteks kirjutavad nad teste, parandavad vigu ja rakendavad funktsioone, mis ei m\u00f5juta p\u00f5hifunktsionaalsust. P\u00f5hifunktsionaalsus on varukoopiate loomine ja nende taastamine. Kui lasta sisse viga varukoopia loomises, kaotame andmed. Ja keegi ei taha seda, loomulikult. K\u00f5ik soovivad, et k\u00f5ik oleks v\u00e4ga usaldusv\u00e4\u00e4rne. Seet\u00f5ttu ei soovi me lubada koodi, millele me ei usalda v\u00e4hem kui omaenda. St iga mittet\u00e4htis kood on see, mida sooviksime saada oma lisat\u00f6\u00f6tajate k\u00e4est.<\/p>\n<p><\/p>\n<p><strong>Millistel tingimustel aktsepteeritakse tudengi PR-i<\/strong><\/p>\n<p><\/p>\n<ul>\n<li>Nad peavad katma oma koodi testidega. K\u00f5ik peab l\u00e4bima CI. <\/li>\n<li>Ja l\u00e4binud 2 \u00fclevaatust. \u00dcks Andrei Borodini ja \u00fcks minu omalt. <\/li>\n<li>Lisaks, et veenduda, et see ei riku midagi meie teenuses, laadisin ma eraldi selle p\u00e4ringuga \u00fcles ehituse. Ja me kontrollime end-to-end testides, et meil ei j\u00e4\u00e4 midagi katki.<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Erikursus avatud l\u00e4htekoodiga<\/strong><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgi R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/58832406f3acdf294cd68e6adde14ec8.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Veidi sellest, miks see vajalik on ja miks see, minu arvates, on \u00e4ge idee. <\/p>\n<p><\/p>\n<p><strong>Meile on kasu ilmne:<\/strong> <\/p>\n<p><\/p>\n<ul>\n<li>Me saame t\u00e4iendavaid k\u00e4si. <\/li>\n<li>Ja otsime meeskonda andekaid tudengeid, kes kirjutavad head koodi. <\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Milline on kasu tudengitele?<\/strong><\/p>\n<p><\/p>\n<p>See v\u00f5ib olla v\u00e4hem ilmne, sest tudengid, v\u00e4hemalt, ei saa raha selle eest, mida nad kirjutavad, vaid saavad ainult hindes\u00fcsteemi punkte. <\/p>\n<p><\/p>\n<p>K\u00fcsin nende k\u00e4est. Ja nende s\u00f5nul:<\/p>\n<p><\/p>\n<ul>\n<li>Open Source'i kontributori kogemus.<\/li>\n<li>Saada rida oma CV-sse.<\/li>\n<li>T\u00f5estada ennast ja l\u00e4bida vestlus Yandexis.<\/li>\n<li>Osaleda GSoCi-s.<\/li>\n<li>+1 erikursus neile, kes soovivad koodi kirjutada.<\/li>\n<\/ul>\n<p><\/p>\n<p>Ma ei hakka r\u00e4\u00e4kima, kuidas kursus oli \u00fcles ehitatud. \u00dctlen ainult, et WAL-G oli p\u00f5hiprojekt. Lisaks sisaldas see kursus ka projekte nagu Odyssey, PostgreSQL ja ClickHouse.<\/p>\n<p><\/p>\n<p>Ja andsime \u00fclesandeid mitte ainult sellel kursusel, vaid andsime v\u00e4lja ka diplomeid ja kursuset\u00f6id.<\/p>\n<p><\/p>\n<p><strong>Aga milline on kasu kasutajatele?<\/strong><\/p>\n<p><\/p>\n<p>N\u00fc\u00fcd liigume osa juurde, mis t\u00f5en\u00e4oliselt huvitab teid. Mis kasu teil sellest on? Kasu on selles, et tudengid parandasid palju vigu. Ja tegid funktsioonitaotlusi, mida te soosite, et me teeksime. <\/p>\n<p><\/p>\n<p>Ja r\u00e4\u00e4gin teile asjadest, mida te olete ammu soovinud ja mis on n\u00fc\u00fcd ellu viidud.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgi R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/bb836742bf4f99e1b91c891ed1802bf0.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Tablespace'ide tugi. Tablespace'id WAL-G-s on oodatud juba WAL-G v\u00e4ljaandmisest saadik, kuna WAL-G on WAL-E nimelise teise varundust\u00f6\u00f6riista j\u00e4reltulija, kus oli toetatud andmebaaside varukoopiad tablespace'idega.<\/p>\n<p><\/p>\n<p>Kordaks l\u00fchidalt, mis asi see on ja miks see vajalik on. \u00dcldiselt h\u00f5ivavad k\u00f5ik vahem\u00e4lu Postgres'i andmed \u00fche kausta failis\u00fcsteemis, mida nimetatakse baasiks. See kaust sisaldab k\u00f5iki faile ja alamkaustu, mis on Postgres'ile vajalikud.<\/p>\n<p><\/p>\n<p>Tablespace'id on kaustad, kus asuvad Postgres'i andmed, kuid need ei asu baasikaustast v\u00e4ljas. Slidil on n\u00e4ha, et tablespace'id asuvad v\u00e4ljaspool baasi kausta.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgi R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/0f25591cfcaaeaec02903c9b98d8ac65.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kuidas see Postgres\u2019is v\u00e4lja n\u00e4eb? Baasikaustas on eraldi alamkaust pg_tblspc. Ja selle sees on s\u00fcmboolsed lingid kaustadele, kus asuvad Postgres'i andmed v\u00e4ljaspool baasikausta.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgi R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/9e9875696c03e6e42bb98b5a7a9acd75.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kui te seda k\u00f5ike kasutate, v\u00f5ivad need k\u00e4sud teie jaoks v\u00e4lja n\u00e4ha umbes nii. St. loote tabeli m\u00f5nes m\u00e4\u00e4ratud tablespace'is ja vaatate, kus see n\u00fc\u00fcd asub. Need kaks viimast rida, kaks viimast k\u00e4sku. Sealt on n\u00e4ha, et seal on mingi tee. Aga tegelikult \u2013 see ei ole t\u00f5eline tee. See on tee, millel on eeltingimus p\u00f5hikaustast tablespace'i. Ja sealt on see seotud s\u00fcmboolse lingiga, mis viib teie tegelike andmeteni.<\/p>\n<p><\/p>\n<p>Meie tiimis seda k\u00f5ike ei kasutata, kuid paljude teiste WAL-E kasutajate seas, kes kirjutasid meile, et nad soovivad \u00fcle minna WAL-G-le, oli see probleemiks. N\u00fc\u00fcd on see toetatud.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgi R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/95ec319ccefa7e6c8bce193317407229.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Teine funktsioon, mille meie spetsiaalne kursus meile t\u00f5i, on catchup. Catchupist teavad inimesed, kes on ilmselt rohkem t\u00f6\u00f6tanud Oracle'iga kui Postgres'iga.<\/p>\n<p><\/p>\n<p>L\u00fchidalt, mis see on. Nii v\u00f5ib meie teenuse klastritopoloogia v\u00e4lja n\u00e4ha. Meil on peamine server. On replikatsiooniserver, mis voogedastab sellest write-ahead log'i. Ja replikatsiooniserver \u00fctleb peamisele serverile, millisel LSN-il ta praegu on. Ja samal ajal v\u00f5ib log'i arhiivida. Lisaks log'i arhiivimisele saadetakse ka varukoopiad pilve. Ja saadetakse delta-varukoopiad.<\/p>\n<p><\/p>\n<p>Milline v\u00f5ib olla probleem? Kui teil on \u00fcsna suur andmebaas, v\u00f5ib juhtuda, et replikatsiooniserver j\u00e4\u00e4b peamisest serverist tugevalt maha. Ja ta j\u00e4\u00e4b nii palju maha, et ei suuda enam kunagi j\u00e4rele j\u00f5uda. Selle probleemi lahendamiseks tuleb tavaliselt midagi ette v\u00f5tta. <\/p>\n<p><\/p>\n<p>Ja k\u00f5ige lihtsam viis \u2013 on eemaldada replikatsiooniserver ja seadistada see uuesti, kuna ta ei suuda kunagi enam j\u00e4rele j\u00f5uda, aga probleemiga tuleb tegeleda. Kuid see v\u00f5tab \u00fcsna kaua aega, kuna 10 TB andmebaasi taastamine on v\u00e4ga, v\u00e4ga aegan\u00f5udev. Tahame selliseid probleeme lahendada v\u00f5imalikult kiiresti. Just selleks ongi m\u00f5eldud catchup.<\/p>\n<p><\/p>\n<p>Catchup v\u00f5imaldab kasutada delta-varukoopiate tegemist, mis salvestatakse pilve sellisel viisil. Te \u00fctlete, millisel LSN-il asub praegu mahaj\u00e4\u00e4v replika, ja m\u00e4\u00e4rate selle catchup k\u00e4sus, et luua delta-varukoopia nende LSN-ide vahel, kus asub teie klaster. Seej\u00e4rel taastate selle varukoopia mahaj\u00e4\u00e4vale replikale.<\/p>\n<p><\/p>\n<p><strong>Teised baasid<\/strong><\/p>\n<p><\/p>\n<p>Veel t\u00f5id tudengid meile kohe palju funktsioone. Kuna me Yandaxis t\u00f6\u00f6tleme mitte ainult Postgres, meil on ka MySQL, MongoDB, Redis, ClickHouse, siis mingil hetkel vajasime, et saaksime teha varukoopiad point-in-time taastamise v\u00f5imalusega MySQL jaoks ning et oleks v\u00f5imalik need pilve laadida.<\/p>\n<p><\/p>\n<p>Ja me soovisime seda teha kuidagi sarnasel viisil nagu teeb WAL-G. Otsustasime eksperimenteerida ja vaadata, kuidas see k\u00f5ik v\u00e4lja n\u00e4eb.<\/p>\n<p><\/p>\n<p>Alguses ei jaganud me seda loogikat ja kirjutasime koodi otse forki. N\u00e4gime, et meil on mingi toimiv mudel ja see v\u00f5ib toimida. Hiljem m\u00f5tlesime, et meie peamine kogukond on postgres\u2019i kasutajad, kes kasutavad WAL-G-d. Seet\u00f5ttu tuleb neid osi mingil viisil eraldada, st kui me parandame koodi Postgresi jaoks, ei rikku me MySQL-i, ja kui me parandame MySQL-i, ei rikku me Postgresi.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgi R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/deef7615eaeb0b8bd790fb253cc42312.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Esimene idee selle kohta, kuidas seda jagada, oli idee kasutada sama l\u00e4henemist, mida kasutatakse PostgreSQL-i laiendustes. Ja p\u00f5him\u00f5tteliselt, et MySQL-i varundamiseks pidite paigaldama mingi d\u00fcnaamilise teegi. <\/p>\n<p><\/p>\n<p>Kuid kohe on n\u00e4ha selle l\u00e4henemise as\u00fcmmeetriat. Kui te varundate Postgresi, paigaldatakse sellele normaalne varundust\u00f6\u00f6riist Postgresi jaoks ja k\u00f5ik on suurep\u00e4rane. MySQL-i puhul selgub, et te paigaldate Postgresi varundust\u00f6\u00f6riista ja selle jaoks paigaldatakse veel d\u00fcnaamiline teek MySQL-i jaoks. See k\u00f5lab kuidagi kummaliselt. Me m\u00f5tlesime ka nii ja otsustasime, et see ei ole lahendus, mida me vajame. <\/p>\n<p><\/p>\n<p><strong>Erinevad kogud Postgresi, MySQL, MongoDB, Redis jaoks<\/strong><\/p>\n<p><\/p>\n<p>Kuid see v\u00f5imaldas meil, nagu me arvame, j\u00f5uda \u00f5igele lahendusele \u2013 eraldada erinevad kogud erinevatele andmebaasidele. See v\u00f5imaldas isoleerida loogika, mis oli seotud erinevate andmebaaside varundamisega, mis p\u00f6\u00f6rdusid \u00fchise API poole, mida rakendab WAL-G.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgi R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/6c810d5f065de06fc200bdd028707318.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>See on see osa, mille me ise kirjutasime \u2013 enne seda, kui andsime \u00f5pilastele \u00fclesandeid. St. see on just see osa, kus nad v\u00f5iksid midagi valesti teha, seet\u00f5ttu otsustasime, et parem on, kui teeme ise midagi \u00f5igesti ja k\u00f5ik l\u00e4heb suurep\u00e4raselt. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgi R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/3a864a85bfb820ef64cbacc029a9198c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>P\u00e4rast seda meie andsime \u00fclesandeid. Need kohe jagati \u00e4ra. \u00d5pilastelt oodati kolme andmebaasi toetust. <\/p>\n<p><\/p>\n<p>See on MySQL, mida me varundame WAL-G abil juba \u00fcle aasta sellisel viisil. <\/p>\n<p><\/p>\n<p>Ja n\u00fc\u00fcd juba MongoDB l\u00e4heneb produktiivsusele, seal seda lihvitakse. P\u00f5him\u00f5tteliselt kirjutasime kogu selle raamistiku meie. Siis kirjutasid \u00f5pilased mingeid t\u00f6\u00f6tavaid asju. Ja seej\u00e4rel viime need sellisesse seisundisse, mille me saame oma tootmises aktsepteerida.<\/p>\n<p><\/p>\n<p>Need \u00fclesanded ei tundunud sellistena, et \u00f5pilastelt oleks oodatud igasuguste backup-t\u00e4iendite kirjutamine iga andmebaasi jaoks. Meil sellist probleemi ei olnud. Meie probleem oli see, et soovisime punkt-punkti taastumist ning et tahame varundada pilve. Ja palusime \u00f5pilastel kirjutada mingit koodi, mis seda lahendaks. \u00d5pilased kasutasid juba olemasolevaid backup-t\u00e4iendusi, mis mingil moel varundavad, ja seej\u00e4rel \u00fchendati see k\u00f5ik WAL-G-ga, mis edastas selle k\u00f5ik pilve. Samuti lisati sellele punkt-punkti taastamine.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgi R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/7494aef259c7599e8bf0b70d77e1bb09.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Mida veel t\u00f5id \u00f5pilased? Nad t\u00f5id WAL-G-le Libsodium kr\u00fcpteerimise toe.<\/p>\n<p><\/p>\n<p>N\u00fc\u00fcd on meil ka varukoopiate s\u00e4ilitamise poliitikad. N\u00fc\u00fcd saab varukoopiad t\u00e4histada p\u00fcsivatena. Ja nagu kuidagi mugavam automatiseerida nende s\u00e4ilitamise protsessi teie teenusele. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgi R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/6e932ab13dbc3119f7f1da1122443b10.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Mida me selle eksperimendi tulemustena saime?<\/p>\n<p><\/p>\n<p>Alguses registreerus kursusele enam kui 100 inimest. Ma ei \u00f6elnud alguses, et \u00dclikool Ekaterinburgis on Uuralite F\u00f6deraal\u00fclikool. Seal me k\u00f5ik kuulutasime v\u00e4lja. 100 inimest registreerus. Tegelikult hakkas reaalselt midagi tegema palju v\u00e4hem, umbes 30 inimest. <\/p>\n<p><\/p>\n<p>Kursuse l\u00f5petas veel v\u00e4hem inimesi, kuna seal tuli kirjutada testid olemasolevale koodile. Samuti pidi parandama mingit viga v\u00f5i tegema mingit funktsiooni. Ja osa \u00fcli\u00f5pilasi l\u00f5petas ikkagi kursuse.<\/p>\n<p><\/p>\n<p>Praeguseks on \u00fcli\u00f5pilased selle kursuse raames parandanud umbes 14 probleemipunkti, teinud 10 erineva suurusega funktsiooni. Ja mulle tundub, et see on t\u00f5eline asendus \u00fche-kahte arendajat. <\/p>\n<p><\/p>\n<p>K\u00f5ikidest neist andsime v\u00e4lja diplome ja kursuset\u00f6id. 12 v\u00f5tsid diplomid. 6 neist on juba kaitsnud \u00ab5\u00bb hindega. \u00dclej\u00e4\u00e4nud ei ole veel kaitsnud, kuid ma arvan, et neilgi l\u00e4heb h\u00e4sti. <\/p>\n<p><\/p>\n<p>Tulevikuplaanid<\/p>\n<p><\/p>\n<p>Millised on meie tulevikuplaanid?<\/p>\n<p><\/p>\n<p>K\u00f5ige v\u00e4hem on neid funktsioonisoove, mida oleme juba kasutajatelt kuulnud ja mida tahame teostada. Need on:<\/p>\n<p><\/p>\n<ul>\n<li>Ajaskaalal korraliku j\u00e4lgimise tagamine HA-kliendi varukoopiate arhiivis. Selleks saame kasutada WAL-G-d. Ja ma arvan, et leidub tudengeid, kes on valmis selle t\u00f6\u00f6ga tegelema. <\/li>\n<li>Varukoopiate ja WAL-i \u00fcleviimise eest erinevate pilvede vahel vastutab meil juba \u00fcks inimene. <\/li>\n<li>Olemegi hiljuti avaldanud idee, et saame WAL-G-d veelgi kiiremaks muuta, kasutades inkrementaalsete varukoopiate lahtipakkimist ilma lehek\u00fclgede \u00fclekirjutamiseta ja optimeerides arhiive, mida sinna saadame. <\/li>\n<\/ul>\n<p><\/p>\n<p>V\u00f5ite neid siin jagada.<\/p>\n<p><\/p>\n<p>Milleks see ettekande eesm\u00e4rk oli? Selleks, et praegu, peale meie nelja inimese, kes seda projekti toetavad, on meil ka mitmeid lisak\u00e4si. Eriti kui nendele kirjutada isiklikult. Ja kui te teete oma andmete varukoopiaid ning kasutate selleks WAL-G-d v\u00f5i soovite selle peale \u00fcle minna, siis saame teie soove \u00fcsna lihtsalt arvesse v\u00f5tta.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgi R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/7b0dc1633121ea6493610b08f68a14d2.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>See qr-kood ja link. Nende kaudu saate minna ja kirjutada k\u00f5ik oma soovid. N\u00e4iteks m\u00f5nda viga me ei lahenda. V\u00f5i m\u00f5nda funktsiooni, mida te v\u00e4ga soovite, aga mis mingil p\u00f5hjusel pole veel \u00fcheski varunduses, sealhulgas meie omas. Kindlasti kirjutage sellest.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgi R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/56f1c4eef8522d2d6628ea98b1278846.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>K\u00fcsimused<\/p>\n<p><\/p>\n<p><em>Tere! Ait\u00e4h ettekande eest! K\u00fcsimus on WAL-G kohta, aga mitte Postgresi osas. WAL-G varundab MySQL-i ja kutsub v\u00e4lja ekstra-varunduse. Kui v\u00f5tta kaasaegsed installatsioonid CentOS-il ja kui teete yum install MySQL, siis installitakse MariDB. Alates versioonist 10.3 ei toetata ekstra-varundust, toetatakse MariDB varundust. Kuidas teil sellega lood on?<\/em><\/p>\n<p><\/p>\n<p>Praegu me ei ole \u00fcritanud varundada MariDB-d. Meil on olnud p\u00e4ringud FoundationDB toe kohta, aga \u00fcldiselt, kui selline p\u00e4ring on, siis saame leida inimesi, kes sellega tegeleksid. See ei ole nii pikk ja mitte nii keeruline, nagu mulle tundub.<\/p>\n<p><\/p>\n<p><em>Tere p\u00e4evast! Ait\u00e4h ettekande eest! K\u00fcsimus on potentsiaalsete uute funktsioonide kohta. Kas olete valmis sundima WAL-G t\u00f6\u00f6le teipidega, et varundust teipidele teha?<\/em><\/p>\n<p><\/p>\n<p>Kas m\u00f5eldakse varundust lintlao jaoks?<\/p>\n<p><\/p>\n<p><em>Jah.<\/em><\/p>\n<p><\/p>\n<p>Seal on Andrei Borodin, kes sellele k\u00fcsimusele paremini vastata oskab. <\/p>\n<p><\/p>\n<p>(Andrei) Jah, ait\u00e4h k\u00fcsimuse eest! Meil oli taotlus varukoopia \u00fclekandmiseks lintidele pilveteenusest. Ja selleks <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wal-g\/wal-g\/pull\/596\">on k\u00e4imas<\/a><\/noindex> \u00fclekanded pilvede vahel. Sest \u00fclekandmine pilvede vahel on teatud \u00fcldistamine \u00fclekandmisest lintidele. Lisaks on meie salvestuste arhitektuur laiendatav. Muide, paljusid salvestusi on kirjutanud \u00fcli\u00f5pilased. Ja kui te kirjutate salvestuse lintide jaoks, siis see kindlasti saab toetust. Oleme valmis vaatama pull requeste. Seal tuleb faili kirjutada, faili lugeda. Kui need asjad teha Go-s, siis tavaliselt l\u00e4heb 50 koodi rida. Ja siis toetatakse WAL-G-s linti. <\/p>\n<p><\/p>\n<p><em>Ait\u00e4h ettekande eest! Huvi arendamisprotsessi vastu. Varukoopia on t\u00f5sine funktsionaalsus, mis peab olema h\u00e4sti kaetud testidega. Kui te realiseerisite uute andmebaaside jaoks funktsionaalsust, siis kas testid kirjutasid samuti \u00fcli\u00f5pilased v\u00f5i kirjutasite testid ise ja andsite seej\u00e4rel rakendamise \u00fcli\u00f5pilastele?<\/em><\/p>\n<p><\/p>\n<p>Testid tegid samuti \u00fcli\u00f5pilased. Kuid \u00fcli\u00f5pilased tegid rohkem selliste funktsioonide jaoks, nagu uued andmebaasid. Nad tegid integratsioonitestid. Ja nad tegid unit-testid. Kui integratsioonitestid l\u00e4bivad, st hetkel - see on stsenaarium, mida teete k\u00e4sitsi v\u00f5i teeb selle teie eest n\u00e4iteks cron. See t\u00e4hendab, et stsenaarium on v\u00e4ga arusaadav. <\/p>\n<p><\/p>\n<p><em>\u00dcli\u00f5pilastel pole palju kogemusi. Kui palju aega kulub \u00fclevaatamiseks?<\/em><\/p>\n<p><\/p>\n<p>Jah, \u00fclevaatamiseks kulub \u00fcsna palju aega. See t\u00e4hendab, et tavaliselt, kui tuleb korraga mitu komiteerijat ja \u00fctlevad, et ma tegin seda, ma tegin toda, siis tuleb m\u00f5elda ja eraldada kuskil pool p\u00e4eva, et m\u00f5ista, mida nad on kirjutanud. Sest kood tuleb hoolikalt lugeda. Nad ei ole ju intervjuud l\u00e4binud. Me ei tunne neid v\u00e4ga h\u00e4sti, seega v\u00f5tab see m\u00e4rkimisv\u00e4\u00e4rselt aega.<\/p>\n<p><\/p>\n<p><em>Ait\u00e4h ettekande eest! Varem on Andrei Borodin kinnitanud, et archive_command WAL-G-s peab olema otse kutsutud. Kuid m\u00f5ne patroonklasteri puhul vajame t\u00e4iendavat loogikat, et m\u00e4\u00e4rata, millisest noodist saata vahu. Kuidas te seda probleemi enda juures lahendate?<\/em><\/p>\n<p><\/p>\n<p>Milles teisel teema juures probleem on? Oletame, et teil on s\u00fcnkroonne koopia, millest teete varukoopia? V\u00f5i mis?<\/p>\n<p><\/p>\n<p>(Andrei) Asi on selles, et t\u00f5epoolest eeldab WAL-G shell-skriptide puudumist. Kui midagi on puudu, siis laske meil kirjutada loogika, mis peaks olema WAL-G sees. Mis puudutab arhiveerimise alguskohta, siis usume, et arhiveerimine peaks toimuma praeguselt peMasterilt klastris. Arhiveerimine koopiast on halb m\u00f5te. Seal v\u00f5ivad tekkida erinevad probleemiskenenaarid. Eelk\u00f5ige ajakava arhiveerimise ja muude lisainformatsioonidega seotud probleemid. Ait\u00e4h k\u00fcsimuse eest!<\/p>\n<p><\/p>\n<p>(Selgitus: Shell-skriptide m\u00e4histest on loobutud <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wal-g\/wal-g\/issues\/549\">selles issue<\/a><\/noindex>)<\/p>\n<p><\/p>\n<p><em>Tere \u00f5htust! Ait\u00e4h ettekande eest! Mind huvitas catchup funktsioon, millest r\u00e4\u00e4kisite. Olen kokku puutunud olukorraga, kus koopia j\u00e4i maha ja ei saanud kuidagi j\u00e4rele. Ja WAL-G-s ei leidnud ma selle funktsiooni kirjeldust dokumentatsioonis.<\/em><\/p>\n<p><\/p>\n<p>Catchup ilmus s\u00f5na otseses m\u00f5ttes 20. jaanuari paiku 2020. Ahn dokumentatsiooniga tasuks v\u00f5ib-olla rohkem t\u00f6\u00f6d teha. Me kirjutame seda ise ja ei kirjuta seda just super h\u00e4sti. Ja v\u00f5ib-olla peaksime \u00fcli\u00f5pilastelt rohkem n\u00f5udma, et nad seda kirjutaksid.<\/p>\n<p><\/p>\n<p><em>Kas see on juba v\u00e4lja antud?<\/em><\/p>\n<p><\/p>\n<p>Pull request on juba \u00fchendatud, st olen selle \u00fcle vaadanud. Proovisin seda testklastris. Meil pole seni olnud olukorda, kus saaksime seda tootmisn\u00e4ites kontrollida.<\/p>\n<p><\/p>\n<p><em>Millal oodata?<\/em><\/p>\n<p><\/p>\n<p>Ma ei tea. Oodake kuu aega, siis kontrollime t\u00e4pselt.<\/p>\n<p>Allikas: <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\/et\/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=\"et_EE\" \/>\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\/et\/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: uued v\u00f5imalused ja kogukonna laiendamine. Georgi R\u00fc\u0142ov | ProHoster","description":"Soovitan tutvuda 2020. aasta alguses Georgi R\u00fc\u0142ovi ettekande \"WAL-G: uued v\u00f5imalused ja kogukonna laiendamine\" sisuga. Open-source'i hoidjatel on paljusid probleeme, mis tekivad nende kasvades. Kuidas kirjutada \u00fcha rohkem vajalikke funktsioone, parandada \u00fcha rohkem probleeme ja j\u00f5uda vaadata \u00fcha rohkem pull request'e? WAL-G (backup-tool for PostgreSQL) n\u00e4itel r\u00e4\u00e4gin sellest, kuidas me neid probleeme lahendasime.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/wal-g-novye-vozmozhnosti-i-rasshirenie-soobshhestva-georgij-rylov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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\/et\/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\/et\/wp-json\/wp\/v2\/posts\/78887","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=78887"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/78887\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/78888"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=78887"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=78887"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=78887"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}