WAL-G: mga bagong feature at pagpapalawak ng komunidad. Georgy Rylov

Iminumungkahi kong basahin mo ang transcript ng unang bahagi ng 2020 na ulat ni Georgy Rylov "WAL-G: mga bagong pagkakataon at pagpapalawak ng komunidad"

Ang mga open-source maintainer ay nahaharap sa maraming hamon habang lumalaki sila. Paano magsulat ng higit pa at higit pang mga kinakailangang tampok, ayusin ang higit pa at higit pang mga isyu at pamahalaan upang tingnan ang higit pa at higit pang mga kahilingan sa paghila? Gamit ang WAL-G (backup-tool para sa PostgreSQL) bilang isang halimbawa, sasabihin ko sa iyo kung paano namin nalutas ang mga problemang ito sa pamamagitan ng paglulunsad ng kurso sa Open-source development sa unibersidad, kung ano ang aming nakamit at kung saan kami susunod na lilipat.

WAL-G: mga bagong feature at pagpapalawak ng komunidad. Georgy Rylov

Hello ulit sa lahat! Ako ay isang developer ng Yandex mula sa Yekaterinburg. At ngayon ay pag-uusapan ko ang tungkol sa WAL-G.

Ang pamagat ng ulat ay hindi sinabi na ito ay tungkol sa pag-backup. May nakakaalam ba kung ano ang WAL-G? O alam ba ng lahat? Itaas ang iyong kamay kung hindi mo alam. Holy shit, pumunta ka sa ulat at hindi mo alam kung tungkol saan ito.

Hayaan mong sabihin ko sa iyo kung ano ang mangyayari ngayon. Nagkataon na medyo matagal nang gumagawa ng backup ang aming team. At ito ay isa pang ulat sa isang serye kung saan pinag-uusapan natin kung paano tayo nag-iimbak ng data nang ligtas, secure, maginhawa at mahusay.

WAL-G: mga bagong feature at pagpapalawak ng komunidad. Georgy Rylov

Sa nakaraang serye maraming mga ulat ni Andrei Borodin at Vladimir Leskov. Marami kami noon. At maraming taon na nating pinag-uusapan ang WAL-G.

clck.ru/F8ioz β€” https://www.highload.ru/moscow/2018/abstracts/3964

clck.ru/Ln8Qw β€” https://www.highload.ru/moscow/2019/abstracts/5981

Ang ulat na ito ay magiging bahagyang naiiba sa iba dahil ito ay higit pa tungkol sa teknikal na bahagi, ngunit dito ko pag-uusapan kung paano kami nakatagpo ng mga problema na nauugnay sa paglago ng komunidad. At kung paano kami nakabuo ng isang maliit na ideya na makakatulong sa amin na makayanan ito.

WAL-G: mga bagong feature at pagpapalawak ng komunidad. Georgy Rylov

Ilang taon na ang nakalipas, ang WAL-G ay isang medyo maliit na proyekto na nakuha namin mula sa Citus Data. At kinuha lang namin. At ito ay binuo ng isang tao.

At ang WAL-G lamang ang walang:

  • Backup mula sa isang replika.
  • Walang mga incremental backup.
  • Walang mga backup na WAL-Delta.
  • At marami pa rin ang kulang.

Sa loob ng ilang taon, ang WAL-G ay lumago nang husto.

WAL-G: mga bagong feature at pagpapalawak ng komunidad. Georgy Rylov

At sa 2020, lahat ng nasa itaas ay lumitaw na. At dito ay idinagdag kung ano ang mayroon tayo ngayon:

  • Higit sa 1 bituin sa GitHub.
  • 150 tinidor.
  • Mga 15 bukas na PR.
  • At marami pang nag-aambag.
  • At bukas na mga isyu sa lahat ng oras. At ito sa kabila ng katotohanan na kami ay literal na pumupunta doon araw-araw at may ginagawa tungkol dito.

WAL-G: mga bagong feature at pagpapalawak ng komunidad. Georgy Rylov

At kami ay dumating sa konklusyon na ang proyektong ito ay nangangailangan ng higit sa aming pansin, kahit na kami mismo ay hindi kailangang magpatupad ng anuman para sa aming Managed Databases na serbisyo sa Yandex.

At sa isang lugar sa taglagas ng 2018, isang ideya ang pumasok sa aming isipan. Karaniwan ang koponan ay may ilang mga paraan upang bumuo ng ilang mga tampok o ayusin ang mga bug kung wala kang sapat na mga kamay. Halimbawa, maaari kang kumuha ng isa pang developer at magbayad sa kanya ng pera. O maaari kang kumuha ng intern sandali at magbayad din sa kanya ng ilang suweldo. Ngunit mayroon pa ring isang malaking grupo ng mga tao, ang ilan sa kanila ay talagang alam na kung paano magsulat ng code. Hindi mo lang palaging alam kung ano ang kalidad ng code.

Pinag-isipan namin ito at nagpasyang subukang akitin ang mga estudyante. Ngunit ang mga mag-aaral ay hindi sasali sa lahat ng bagay sa amin. Gagawin lamang nila ang ilang bahagi ng trabaho. At sila, halimbawa, magsusulat ng mga pagsubok, mag-aayos ng mga bug, magpapatupad ng mga tampok na hindi nakakaapekto sa pangunahing pag-andar. Ang pangunahing pag-andar ay ang paglikha ng mga backup at pagpapanumbalik ng mga backup. Kung magkamali tayo sa paggawa ng backup, makakaranas tayo ng pagkawala ng data. At walang may gusto nito, siyempre. Nais ng lahat na maging ligtas ang lahat. Samakatuwid, siyempre, hindi namin gustong hayaan ang code na mas pinagkakatiwalaan namin kaysa sa sarili namin. Ibig sabihin, anumang hindi kritikal na code ang gusto naming matanggap mula sa aming mga karagdagang manggagawa.

Sa ilalim ng anong mga kondisyon tinatanggap ang PR ng mag-aaral?

  • Kinakailangan nilang sakupin ang kanilang code ng mga pagsubok. Lahat dapat mangyari sa CI.
  • At dumaan din kami sa 2 review. Isa kay Andrey Borodin at isa sa akin.
  • At bukod pa rito, upang matiyak na hindi nito masisira ang anumang bagay sa aming serbisyo, hiwalay kong ina-upload ang pagpupulong kasama ang commit na ito. At sinusuri namin ang mga end-to-end na pagsubok na walang nabigo.

Espesyal na kurso sa Open Source

WAL-G: mga bagong feature at pagpapalawak ng komunidad. Georgy Rylov

Kaunti tungkol sa kung bakit ito kailangan at kung bakit ito, sa tingin ko, ay isang cool na ideya.

Para sa amin, kitang-kita ang kita:

  • Kumuha kami ng mga karagdagang kamay.
  • At naghahanap kami ng mga kandidato para sa koponan sa mga matatalinong estudyante na nagsusulat ng matalinong code.

Ano ang benepisyo para sa mga mag-aaral?

Maaaring hindi gaanong halata ang mga ito, dahil ang mga mag-aaral, sa pinakamababa, ay hindi tumatanggap ng pera para sa code na kanilang isinulat, ngunit nakakatanggap lamang ng mga marka para sa kanilang mga talaan ng mag-aaral.

Tinanong ko sila tungkol dito. At sa kanilang mga salita:

  • Karanasan ng contributor sa Open Source.
  • Kumuha ng linya sa iyong CV.
  • Patunayan ang iyong sarili at pumasa sa isang pakikipanayam sa Yandex.
  • Maging isang miyembro ng GSoC.
  • +1 espesyal na kurso para sa mga gustong magsulat ng code.

Hindi ako magsasalita tungkol sa kung paano nakaayos ang kurso. Sasabihin ko lang na ang WAL-G ang pangunahing proyekto. Kasama rin namin ang mga proyekto tulad ng Odyssey, PostgreSQL at ClickHouse sa kursong ito.

At nagbigay sila ng mga problema hindi lamang sa kursong ito, ngunit nagbigay din ng mga diploma at coursework.

Paano ang tungkol sa benepisyo para sa mga gumagamit?

Ngayon ay lumipat tayo sa bahaging pinaka-interesante sa iyo. Anong kabutihan ang naidudulot nito sa iyo? Ang punto ay ang mga mag-aaral ay nag-ayos ng maraming mga bug. At ginawa namin ang mga feature ng kahilingan na hiniling mong gawin namin.

At hayaan mong sabihin ko sa iyo ang tungkol sa mga bagay na matagal mo nang gusto at natupad na.

WAL-G: mga bagong feature at pagpapalawak ng komunidad. Georgy Rylov

Suporta sa mga tablespace. Ang mga tablespace sa WAL-G ay inaasahan na marahil mula noong inilabas ang WAL-G, dahil ang WAL-G ay ang kahalili sa isa pang backup na tool na WAL-E, kung saan ang mga backup ng database na may mga tablespace ay suportado.

Hayaan akong maikli na ipaalala sa iyo kung ano ito at kung bakit kailangan ang lahat ng ito. Karaniwan, ang lahat ng iyong data ng Postgres ay sumasakop sa isang direktoryo sa file system, na tinatawag na base. At ang direktoryo na ito ay naglalaman na ng lahat ng mga file at subdirectory na kinakailangan ng Postgres.

Ang mga tablespace ay mga direktoryo na naglalaman ng data ng Postgres, ngunit hindi sila matatagpuan sa labas ng base na direktoryo. Ipinapakita ng slide na ang mga tablespac ay matatagpuan sa labas ng base directory.

WAL-G: mga bagong feature at pagpapalawak ng komunidad. Georgy Rylov

Ano ang hitsura nito para sa Postgres mismo? Mayroong hiwalay na subdirectory pg_tblspc sa base directory. At naglalaman ito ng mga symlink sa mga direktoryo na talagang naglalaman ng data ng Postgres sa labas ng base na direktoryo.

WAL-G: mga bagong feature at pagpapalawak ng komunidad. Georgy Rylov

Kapag ginamit mo ang lahat ng ito, para sa iyo ang mga utos na ito ay maaaring magmukhang ganito. Iyon ay, lumikha ka ng isang talahanayan sa ilang tinukoy na tablespace at makita kung nasaan ito ngayon. Ito ang huling dalawang linya, ang huling dalawang utos na tinatawag. At doon ay malinaw na mayroong ilang paraan. Ngunit sa katotohanan, hindi ito ang tunay na paraan. Ito ang prefix na landas mula sa base na direktoryo hanggang sa tablespace. At mula doon ito ay itinugma sa isang symlink na humahantong sa iyong tunay na data.

Hindi namin ginagamit ang lahat ng ito sa aming team, ngunit ginamit ito ng maraming iba pang user ng WAL-E na sumulat sa amin na gusto nilang lumipat sa WAL-G, ngunit pinipigilan sila nito. Ito ay suportado na ngayon.

WAL-G: mga bagong feature at pagpapalawak ng komunidad. Georgy Rylov

Ang isa pang tampok na dinala sa amin ng aming espesyal na kurso ay catchup. Ang mga taong malamang na nagtrabaho nang higit sa Oracle kaysa sa Postgres ay alam ang tungkol sa catchup.

Maikling tungkol sa kung ano ito. Maaaring karaniwang ganito ang hitsura ng cluster topology sa aming serbisyo. May master tayo. Mayroong isang replika na nag-stream ng write-ahead log mula dito. At ang replica ay nagsasabi sa master kung aling LSN ito ay kasalukuyang naka-on. At sa isang lugar na kahanay nito, maaaring i-archive ang log. At bilang karagdagan sa pag-archive ng log, ang mga backup ay ipinapadala din sa cloud. At ang mga backup ng delta ay ipinadala.

Ano kaya ang problema? Kapag mayroon kang isang medyo malaking database, maaaring lumabas na ang iyong replica ay nagsisimula nang malayo sa master. At nahuhuli siya nang hindi na niya maabutan. Ang problemang ito ay karaniwang kailangang malutas kahit papaano.

At ang pinakamadaling paraan ay tanggalin ang replica at muling i-upload ito, dahil hinding-hindi na ito aabutan, at kailangang harapin ang problema. Ngunit ito ay medyo mahabang panahon, dahil ang pagpapanumbalik ng isang buong 10 TB database backup ay isang napaka, napakahabang panahon. At gusto naming gawin ang lahat ng ito nang mabilis hangga't maaari kung may mga ganitong problema. At iyon mismo ang para sa catchup.

Hinahayaan ka ng Catchup na gumamit ng mga pag-backup ng delta, na nakaimbak sa cloud sa ganitong paraan. Sasabihin mo kung aling LSN ang lagging replica ay kasalukuyang naka-on at tukuyin ito sa catchup command upang makagawa ng delta backup sa pagitan ng LSN na iyon at ng LSN kung saan kasalukuyang matatagpuan ang iyong cluster. At pagkatapos ay ibinalik mo ang backup na ito sa replica na nahuhuli.

Iba pang mga base

Ang mga mag-aaral ay nagdala din sa amin ng maraming mga tampok nang sabay-sabay. Dahil sa Yandex, hindi lang Postgres ang niluluto namin, mayroon din kaming MySQL, MongoDB, Redis, ClickHouse, minsan kailangan naming makapag-backup gamit ang point-in-time na pagbawi para sa MySQL, at para magkaroon ng pagkakataong mag-upload. sila sa ulap.

At gusto naming gawin ito sa ilang katulad na paraan sa ginagawa ng WAL-G. At nagpasya kaming mag-eksperimento at tingnan kung ano ang magiging hitsura ng lahat.

At sa una, nang hindi ibinabahagi ang lohika na ito sa anumang paraan, isinulat nila ang code sa tinidor. Nakita nila na mayroon kaming isang uri ng gumaganang modelo at maaari itong lumipad. Then we thought that our main community is postgresists, gumagamit sila ng WAL-G. At samakatuwid kailangan nating paghiwalayin ang mga bahaging ito kahit papaano. Iyon ay, kapag nag-edit kami ng code para sa Postgres, hindi namin sinisira ang MySQL; kapag na-edit namin ang MySQL, hindi namin sinisira ang Postgres.

WAL-G: mga bagong feature at pagpapalawak ng komunidad. Georgy Rylov

Ang unang ideya tungkol sa kung paano paghiwalayin ito ay ang ideya ng paggamit ng parehong diskarte na ginagamit sa mga extension ng PostgreSQL. At, sa katunayan, upang makagawa ng MySQL backup kailangan mong mag-install ng ilang uri ng dynamic na library.

Ngunit narito ang kawalaan ng simetrya ng diskarte na ito ay agad na nakikita. Kapag nag-backup ka ng Postgres, naglalagay ka ng normal na backup para sa Postgres dito at maayos ang lahat. At para sa MySQL lumalabas na nag-install ka ng backup para sa Postgres at nag-install din ng isang dynamic na library para sa MySQL para dito. Parang kakaiba. Naisip din namin at nagpasya na hindi ito ang solusyon na kailangan namin.

Iba't ibang build para sa Postgres, MySQL, MongoDB, Redis

Ngunit ito ay nagpapahintulot sa amin, tila sa amin, na makarating sa tamang desisyon - upang maglaan ng iba't ibang mga pagtitipon para sa iba't ibang mga base. Ginawa nitong posible na ihiwalay ang logic na nakatali sa mga backup ng iba't ibang database na mag-a-access sa karaniwang API na ipinapatupad ng WAL-G.

WAL-G: mga bagong feature at pagpapalawak ng komunidad. Georgy Rylov

Ito ang bahagi na isinulat namin sa aming sarili - bago ibigay sa mga mag-aaral ang mga problema. Ibig sabihin, ito mismo ang bahagi kung saan maaari silang gumawa ng mali, kaya napagpasyahan namin na mas mabuting gawin namin ang isang bagay na tulad nito at magiging maayos ang lahat.

WAL-G: mga bagong feature at pagpapalawak ng komunidad. Georgy Rylov

Pagkatapos noon ay nagbigay kami ng mga problema. Agad silang na-dismantle. Kinakailangang suportahan ng mga estudyante ang tatlong base.

Ito ang MySQL, na bina-back up namin gamit ang WAL-G sa paraang ito nang higit sa isang taon.

At ngayon ay papalapit na ang MongoDB sa produksyon, kung saan tinatapos nila ito gamit ang isang file. Sa katunayan, isinulat namin ang balangkas para sa lahat ng ito. Pagkatapos ay sumulat ang mga mag-aaral ng ilang bagay na maaaring magamit. At pagkatapos ay dinadala namin sila sa isang estado na maaari naming tanggapin sa produksyon.

Ang mga problemang ito ay hindi mukhang kailangan ng mga mag-aaral na magsulat ng kumpletong backup tool para sa bawat isa sa mga database na ito. Wala kaming ganoong problema. Ang aming problema ay gusto namin ng point-in-time na pagbawi at gusto naming mag-backup sa cloud. At hiniling nila sa mga mag-aaral na magsulat ng ilang code na makakalutas nito. Gumamit na ang mga mag-aaral ng mga umiiral nang backup tool, na kahit papaano ay kumukuha ng mga backup, at pagkatapos ay idinikit ang lahat ng ito kasama ng WAL-G, na ipinasa ang lahat ng ito sa cloud. At nagdagdag din sila ng point-in-time na pagbawi dito.

WAL-G: mga bagong feature at pagpapalawak ng komunidad. Georgy Rylov

Ano pa ang dinala ng mga estudyante? Dinala nila ang suporta sa pag-encrypt ng Libsodium sa WAL-G.

Mayroon din kaming mga patakaran sa backup na storage. Ngayon ang mga backup ay maaaring markahan bilang permanente. At kahit papaano ay mas maginhawa para sa iyong serbisyo na i-automate ang proseso ng pag-iimbak ng mga ito.

WAL-G: mga bagong feature at pagpapalawak ng komunidad. Georgy Rylov

Ano ang naging resulta ng eksperimentong ito?

Higit sa 100 tao ang unang nagparehistro para sa kurso. Sa una ay hindi ko sinabi na ang unibersidad sa Yekaterinburg ay ang Ural Federal University. Ibinalita namin ang lahat doon. 100 tao ang nakarehistro. Sa katotohanan, mas kaunting mga tao ang nagsimulang gumawa ng isang bagay, mga 30 tao.

Mas kaunting mga tao ang nakatapos ng kurso, dahil kinakailangan na magsulat ng mga pagsubok para sa mga code na mayroon na. At ayusin din ang ilang bug o gumawa ng ilang tampok. At may mga estudyante pa ring nagsara ng kurso.

Sa kasalukuyan, sa kursong ito, ang mga mag-aaral ay nag-ayos ng humigit-kumulang 14 na isyu at gumawa ng 10 tampok na may iba't ibang laki. At, tila sa akin, ito ay isang ganap na kapalit ng isa o dalawang developer.

Among other things, we issued diplomas and coursework. At 12 ang nakatanggap ng diploma. 6 sa kanila ang nagtanggol na sa kanilang sarili sa "5". Ang mga naiwan ay wala pang proteksyon, ngunit sa palagay ko ay magiging maayos din ang lahat para sa kanila.

ΠŸΠ»Π°Π½Ρ‹ Π½Π° Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅

Ano ang mga plano natin para sa hinaharap?

Hindi bababa sa mga kahilingan sa feature na narinig na namin mula sa mga user at gustong gawin. ito:

  • Pagsubaybay sa kawastuhan ng pagsubaybay sa timeline sa HA cluster backup archive. Magagawa mo ito sa WAL-G. At sa tingin ko magkakaroon tayo ng mga mag-aaral na aasikasuhin ang bagay na ito.
  • Mayroon na kaming taong responsable sa paglilipat ng mga backup at WAL sa pagitan ng mga ulap.
  • At nag-publish kami kamakailan ng ideya na mas mapabilis pa namin ang WAL-G sa pamamagitan ng pag-unpack ng mga incremental na backup nang hindi muling isinusulat ang mga page at ino-optimize ang mga archive na ipinapadala namin doon.

Maaari mong ibahagi ang mga ito dito

Para saan ang ulat na ito? Bukod dito, ngayon, bilang karagdagan sa 4 na tao na sumusuporta sa proyektong ito, mayroon kaming karagdagang mga kamay, na kung saan ay medyo marami. Lalo na kung sumulat ka sa kanila sa isang personal na mensahe. At kung iba-back up mo ang iyong data at gagawin ito gamit ang WAL-G o gusto mong lumipat sa WAL-G, madali naming maa-accommodate ang iyong mga kagustuhan.

WAL-G: mga bagong feature at pagpapalawak ng komunidad. Georgy Rylov

Ito ay isang QR code at isang link. Maaari mong dumaan sa kanila at isulat ang lahat ng iyong mga kagustuhan. Halimbawa, hindi kami nag-aayos ng ilang bug. O gusto mo talaga ng ilang feature, ngunit sa ilang kadahilanan ay wala pa ito sa anumang backup, kasama ang sa amin. Tiyaking magsulat tungkol dito.

WAL-G: mga bagong feature at pagpapalawak ng komunidad. Georgy Rylov

mga katanungan

Kamusta! Salamat sa ulat! Tanong tungkol sa WAL-G, ngunit hindi tungkol sa Postgres. Bina-back ng WAL-G ang MySQL at tumatawag ng karagdagang backup. Kung kukuha kami ng mga modernong pag-install sa CentOS at kung yum install mo ang MySQL, mai-install ang MariDB. Mula sa bersyon 10.3 hindi suportado ang dagdag na backup, sinusuportahan ang MariDB backup. Kumusta ka dito?

Sa ngayon ay hindi pa namin sinubukang i-backup ang MariDB. Nagkaroon kami ng mga kahilingan para sa suporta ng FoundationDB, ngunit sa pangkalahatan, kung mayroong ganoong kahilingan, makakahanap kami ng mga taong gagawa nito. Hindi ito kasing tagal o kasing hirap ng iniisip ko.

Magandang hapon Salamat sa ulat! Tanong tungkol sa mga potensyal na bagong feature. Handa ka na bang gumawa ng WAL-G gamit ang mga tape para makapag-backup ka sa mga tape?

Ang ibig sabihin ng backup sa imbakan ng tape?

Oo.

Nariyan si Andrei Borodin, na mas makakasagot sa tanong na ito kaysa sa akin.

(Andrey) Oo, salamat sa tanong! Nagkaroon kami ng kahilingan na maglipat ng backup sa tape mula sa cloud storage. At para dito paglalagari paglipat sa pagitan ng mga ulap. Dahil ang cloud-to-cloud transfer ay isang pangkalahatang bersyon ng tape transfer. Bilang karagdagan, mayroon kaming isang napapalawak na arkitektura sa mga tuntunin ng Mga Imbakan. Siyanga pala, maraming Storoges ang isinulat ng mga estudyante. At kung isusulat mo ang Storage para sa tape, siyempre, ito ay susuportahan. Handa kaming isaalang-alang ang mga pull request. Doon kailangan mong magsulat ng isang file, magbasa ng isang file. Kung gagawin mo ang mga bagay na ito sa Go, kadalasan ay magkakaroon ka ng 50 linya ng code. At pagkatapos ay ang tape ay susuportahan sa WAL-G.

Salamat sa ulat! Kawili-wiling proseso ng pag-unlad. Ang pag-backup ay isang seryosong bahagi ng pag-andar na dapat na sakop ng mga pagsubok. Noong nagpatupad ka ng functionality para sa mga bagong database, isinulat din ba ng mga mag-aaral ang mga pagsusulit, o ikaw mismo ang sumulat ng mga pagsusulit at pagkatapos ay ibinigay ang pagpapatupad sa mga mag-aaral?

Ang mga mag-aaral ay nagsulat din ng mga pagsusulit. Ngunit ang mga mag-aaral ay nagsulat ng higit pa para sa mga tampok tulad ng mga bagong database. Sumulat sila ng mga pagsusulit sa pagsasama. At nagsulat sila ng mga unit test. Kung pumasa ang integration, ibig sabihin, sa ngayon, isa itong script na manu-mano mong ini-execute o mayroon kang cron na gumagawa nito, halimbawa. Ibig sabihin, napakalinaw ng script doon.

Ang mga mag-aaral ay walang gaanong karanasan. Ang pagsusuri ba ay tumatagal ng maraming oras?

Oo, ang mga pagsusuri ay tumatagal ng maraming oras. Iyon ay, kadalasan, kapag maraming committers ang dumating nang sabay-sabay at sinabi na ginawa ko ito, ginawa ko iyon, pagkatapos ay kailangan mong mag-isip at maglaan ng halos kalahating araw upang malaman kung ano ang kanilang isinulat doon. Dahil ang code ay dapat basahin nang mabuti. Wala silang interview. Hindi namin sila gaanong kilala, kaya't nangangailangan ito ng mahabang panahon.

Salamat sa ulat! Noong nakaraan, sinabi ni Andrey Borodin na ang archive_command sa WAL-G ay dapat na direktang tawagan. Ngunit sa kaso ng ilang uri ng cluster cartridge, kailangan namin ng karagdagang lohika upang matukoy ang node kung saan ipapadala ang mga shaft. Paano mo malulutas ang problemang ito sa iyong sarili?

Ano bang problema mo dito? Sabihin nating mayroon kang kasabay na replica kung saan ka gumagawa ng backup? O ano?

(Andrey) Ang katotohanan ay talagang ang WAL-G ay inilaan na gamitin nang walang mga script ng shell. Kung may kulang, idagdag natin ang logic na dapat nasa loob ng WAL-G. Kung saan dapat magmula ang pag-archive, naniniwala kami na ang pag-archive ay dapat mula sa kasalukuyang master sa cluster. Ang pag-archive mula sa isang replica ay isang masamang ideya. Mayroong iba't ibang mga posibleng senaryo na may mga problema. Sa partikular, ang mga problema sa pag-archive ng mga timeline at anumang karagdagang impormasyon. Salamat sa tanong!

(Paglilinaw: Inalis namin ang mga script ng shell sa isyung ito)

Magandang gabi! Salamat sa ulat! Interesado ako sa tampok na catchup na iyong napag-usapan. Kami ay nahaharap sa isang sitwasyon kung saan ang isang replika ay nasa likod at hindi makahabol. At wala akong nakitang paglalarawan ng tampok na ito sa mga dokumento ng WAL-G.

Literal na lumabas ang Catchup noong ika-20 ng Enero 2020. Ang dokumentasyon ay maaaring mangailangan ng higit pang trabaho. Sinusulat namin ito sa aming sarili at hindi namin ito isinulat nang mahusay. At marahil ay dapat nating simulan ang pag-aatas sa mga mag-aaral na isulat ito.

Inilabas na ba ito?

Patay na ang pull request, ibig sabihin, sinuri ko ito. Sinubukan ko ito sa isang test cluster. Sa ngayon ay wala pa kaming sitwasyon kung saan maaari naming subukan ito sa isang halimbawa ng labanan.

Kailan aasahan?

hindi ko alam. Maghintay ng isang buwan, susuriin namin para sigurado.

Pinagmulan: www.habr.com

Magdagdag ng komento