Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Molaim duit athscríbhinn na tuarascála ó thús na bliana 2019 le Andrey Borodin a léamh "Cúltacaí le WAL-G. Cad atá ann in 2019?"

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Dia duit gach duine! Andrey Borodin is ainm dom. Is forbróir mé ag Yandex. Tá suim agam i PostgreSQL ó 2016, tar éis dom labhairt leis na forbróirí agus dúirt siad go bhfuil gach rud simplí - glacann tú an cód foinse agus é a thógáil, agus oibreoidh gach rud amach. Agus ó shin i leith ní féidir liom stop a chur - scríobhaim gach cineál rudaí éagsúla.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey BorodinCeann de na rudaí a bhfuilim ag obair air ná córas cúltaca. WAL-G. Go ginearálta, ag Yandex bhíomar ag obair ar chórais chúltaca i PostgreSQL le fada an lá. Agus is féidir leat a fháil ar an Idirlíon sraith de shé thuarascáil ar conas a dhéanaimid córais cúltaca. Agus gach bliain éabhlóid siad beagán, a fhorbairt beagán, agus a bheith níos iontaofa.

Ach inniu ní hamháin go mbaineann an tuarascáil leis an méid atá déanta againn, ach freisin faoi cé chomh simplí agus atá sé agus cad atá. Cé mhéad agaibh a d’amharc ar mo thuarascálacha faoi WAL-G cheana féin? Is maith nach raibh go leor daoine ag faire, mar tosóidh mé leis an rud is simplí.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Más rud é go tobann tá braisle PostgreSQL agat, agus is dóigh liom go bhfuil cúpla ceann ag gach duine leo, agus go tobann níl aon chóras cúltaca fós, ansin ní mór duit aon stóráil S3 nó stóráil comhoiriúnach Google Cloud a fháil.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Mar shampla, is féidir leat teacht chuig ár seastán agus cód bolscaireachta a ghlacadh le haghaidh Yandex Object Storage, atá comhoiriúnach le S3.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Ansin cruthaigh buicéad. Níl ann ach coimeádán le haghaidh faisnéise.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Cruthaigh úsáideoir seirbhíse.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Cruthaigh eochair rochtana don úsáideoir seirbhíse: aws-s3-key.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Íoslódáil an scaoileadh cobhsaí is déanaí de WAL-G.

Conas atá ár réamheisiúintí difriúil ó eisiúintí? Is minic a iarrtar orm scaoileadh go luath. Agus mura bhfuil aon fhabht sa leagan ar feadh tréimhse leordhóthanach, mar shampla, in aghaidh na míosa, ansin scaoilim é. Seo é an scaoileadh seo ó mhí na Samhna. Agus ciallaíonn sé seo go bhfuaireamar fabht de shaghas éigin gach mí, de ghnáth i bhfeidhmiúlacht neamhchriticiúil, ach níl scaoileadh fós againn. Níl sa leagan roimhe seo ach Samhain. Níl aon fhabhtanna ar eolas againn ann, i.e. cuireadh fabhtanna leis de réir mar a chuaigh an tionscadal ar aghaidh.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Nuair a bheidh WAL-G íoslódáilte agat, is féidir leat ordú simplí “liosta cúltaca” a rith, ag gabháil leis na hathróga timpeallachta. Agus nascfaidh sé le Object Storage agus inseoidh sé duit cad iad na cúltacaí atá agat. Ar dtús, ar ndóigh, níor cheart go mbeadh cúltacaí agat. Is é pointe an sleamhnáin seo ná a thaispeáint go bhfuil gach rud simplí go leor. Is ordú consól é seo a ghlacann le hathróga timpeallachta agus a fhorghníomhaíonn fo-orduithe.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Tar éis seo, is féidir leat a dhéanamh do chéad cúltaca. Abair “cúltaca-bhrú” in WAL-G agus sonraigh in WAL-G suíomh pgdata do bhraisle. Agus is dócha, inseoidh PostgreSQL duit, mura bhfuil córas cúltaca agat cheana féin, go gcaithfidh tú "mód cartlainne" a chumasú.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Ciallaíonn sé seo go gcaithfidh tú dul chuig na socruithe agus “archive_mode = on” a chur ar siúl agus “archive_command” a chur leis, atá ina fho-ordú in WAL-G freisin. Ach ar chúis éigin is minic a úsáideann daoine scripteanna barra ar an ábhar seo agus fillteann siad thart ar WAL-G é. Ná déan é seo le do thoil. Úsáid an fheidhmiúlacht atá le fáil in WAL-G. Má tá rud éigin in easnamh ort, scríobh chuig GitHub. Glacann WAL-G leis gurb é an t-aon chlár a ritheann in archive_command.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Bainimid úsáid as WAL-G go príomha chun braisle Ard-Infhaighteachta a chruthú i mbainistíocht Bunachar Sonraí Yandex.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Agus úsáidtear é de ghnáth i topology Máistir amháin agus roinnt macasamhlaithe. Ag an am céanna, déanann sé cóip chúltaca i Yandex Object Storage.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Is iad na cásanna is coitianta ná cóipeanna de bhraisle a chruthú ag baint úsáide as Point in time recovery. Ach sa chás seo, níl feidhmíocht an chórais chúltaca chomh tábhachtach dúinn. Níl le déanamh againn ach braisle nua a uaslódáil ón gcúltaca.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

De ghnáth, ní mór dúinn feidhmíocht an chórais cúltaca nuair a chuirtear nód nua leis. Cén fáth a bhfuil sé tábhachtach? Go hiondúil cuireann daoine nód nua le braisle toisc nach féidir leis an mbraisle atá ann cheana féin an t-ualach léite a láimhseáil. Caithfidh siad macasamhail nua a chur leis. Má chuirimid an t-ualach ó pg_basebackup leis an Máistir, ansin féadfaidh an Máistir titim. Mar sin, bhí sé an-tábhachtach dúinn go bhféadfaimis nód nua a uaslódáil go tapa ón gcartlann, rud a chruthaigh ualach íosta ar an Máistir.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Agus cás eile den chineál céanna. Is é seo an gá atá leis an sean-Máistir a atosú tar éis an Máistir Braisle a athrú ón Lárionad Sonraí lenar cailleadh an nascacht.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

  • Mar thoradh air sin, nuair a bhí na ceanglais don chóras cóip á bhfoirmliú, thuig muid nach bhfuil pg_basebackup oiriúnach dúinn agus muid ag feidhmiú sa scamall.
  • Theastaigh uainn a bheith in ann ár sonraí a chomhbhrú. Ach cuirfidh beagnach aon chóras cúltaca seachas an méid a thagann sa bhosca comhbhrú sonraí ar fáil.
  • Theastaigh uainn gach rud a chomhthreomharú mar go gceannaíonn úsáideoir sa scamall líon mór croíleacáin próiseálaí. Ach mura bhfuil comhthreomhaireacht againn in oibríocht éigin, éiríonn líon mór croíleacáin gan úsáid.
  • Teastaíonn criptiú uainn mar is minic nach linne na sonraí agus ní féidir iad a stóráil i dtéacs soiléir. Dála an scéil, thosaigh ár gcion le WAL-G le criptiú. Chríochnaíomar an criptiú in WAL-G, agus iarradh orainn ina dhiaidh sin: "B'fhéidir go bhforbróidh duine againn an tionscadal?" Agus ó shin i leith tá mé ag obair le WAL-G ar feadh níos mó ná bliain.
  • Bhí gá againn le sníomh acmhainní freisin, mar le himeacht ama ag baint úsáide as an scamall, fuair muid amach go mbíonn ualach grósaeireachta tábhachtach ag daoine uaireanta san oíche agus nach féidir cur isteach ar an ualach sin. Sin an fáth gur chuireamar scata acmhainní leis.
  • Chomh maith le liostú agus bainistíocht.
  • Agus fíorú.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

D’fhéachamar ar a lán uirlisí éagsúla. Ar ámharaí an tsaoil, tá rogha ollmhór againn i PostgreSQL. Agus i ngach áit bhí rud éigin in easnamh orainn, roinnt feidhm bheag amháin, roinnt gné amháin beag.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Agus na córais atá ann cheana féin a scrúdú, tháinig muid ar an tátal go bhforbróimid WAL-G. Tionscadal nua a bhí ann an uair sin. Bhí sé éasca go leor tionchar a imirt ar an bhforbairt i dtreo bonneagar scamall an chórais chúltaca.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Is é an príomh-idé-eolaíocht a gcloímid léi ná gur chóir go mbeadh WAL-G chomh simplí le balalaika.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Tá 4 ordú ag WAL-G. seo:

WAL-PUSH – cartlann an seafta.

WAL-FETCH – faigh seafta.

CÚLTA-PUSH - déan cúltaca.

BACKUP-FETCH – faigh cúltaca ón gcóras cúltaca.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Go deimhin, tá na cúltacaí seo á mbainistiú ag WAL-G freisin, i.e. taifid agus cúltacaí staire nach bhfuil ag teastáil a thuilleadh a liostú agus a scriosadh.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Ceann de na feidhmeanna tábhachtacha dúinn ná an fheidhm a bhaineann le cóipeanna deilt a chruthú.

Ciallaíonn cóipeanna Delta nach gcruthóimid cúltaca iomlán den bhraisle iomlán, ach na leathanaigh athraithe de na comhaid athraithe sa bhraisle amháin. Is cosúil go bhfuil sé seo go feidhmiúil an-chosúil leis an gcumas téarnamh ag baint úsáide as WAL. Ach is féidir linn cúltaca deilt aon-snáithe WAL a rolladh suas go comhthreomhar. Dá réir sin, nuair a bhíonn cúltaca bunúsach déanta againn Dé Sathairn, cúltacaí delta go laethúil, agus ar an Déardaoin theipeann orainn, ansin ní mór dúinn 4 chúltaca delta agus 10 uair an chloig de WAL a rolladh suas. Tógfaidh sé thart ar an am céanna toisc go rollaíonn na cúltacaí deilt go comhthreomhar.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

deltas LSN-bhunaithe - ciallaíonn sé seo go mbeidh orainn nuair a chruthú cúltaca, a chur le chéile gach leathanach agus seiceáil a LSN leis an LSN an cúltaca roimhe sin chun a thuiscint go bhfuil sé athraithe. Ba cheart go mbeadh aon leathanach a bhféadfadh sonraí athraithe a bheith ann a bheith i láthair sa chúltaca deilt.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Mar a dúirt mé, díríodh go leor airde ar chomhthreomhaireacht.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Ach tá an API cartlainne i PostgreSQL comhsheasmhach. Cartlann PostgreSQL comhad WAL amháin agus nuair a athchóirítear é iarrann sé comhad WAL amháin. Ach nuair a iarrann an bunachar sonraí comhad WAL amháin ag baint úsáide as an ordú "WAL-FETCH", tugaimid an t-ordú "WAL-PREFETCH", a ullmhaíonn na chéad 8 gcomhad eile chun sonraí a fháil ón stór réad ag an am céanna.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey BorodinAgus nuair a iarrann an bunachar sonraí orainn comhad amháin a chartlannú, féachaimid ar archive_status agus féach an bhfuil comhaid WAL eile ann. Agus táimid ag iarraidh WAL a íoslódáil ag an am céanna. Soláthraíonn sé seo gnóthachan feidhmíochta suntasach agus laghdaítear go suntasach an t-achar i líon na WALanna neamhchartlannaithe. Creideann go leor forbróirí córais chúltaca gur córas contúirteach é seo toisc go bhfuilimid ag brath ar ár n-eolas ar na córais inmheánacha cód nach é an API PostgreSQL é. Ní ráthaíonn PostgreSQL láithreacht an fhillteáin archive_status dúinn agus ní ráthaíonn sé an semantics, láithreacht comharthaí ullmhachta do chomhaid WAL ann. Mar sin féin, táimid ag déanamh staidéir ar an gcód foinse, feicimid go bhfuil sé seo amhlaidh agus táimid ag iarraidh leas a bhaint as. Agus déanaimid rialú ar an treo ina bhfuil PostgreSQL ag forbairt; más rud é go tobann go bhfuil an meicníocht seo briste, stopfaimid é a úsáid.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Ina fhoirm ghlan, éilíonn WAL delta atá bunaithe ar LSN aon chomhad braisle a bhfuil a modh-ama sa chóras comhaid athraithe ón cúltaca roimhe seo a léamh. Mhair muid leis seo ar feadh i bhfad, beagnach bliain. Agus sa deireadh tháinig muid ar an tátal go bhfuil WAL deltas againn.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey BorodinCiallaíonn sé seo gach uair a dhéanaimid WAL a chartlannú ar an Máistir, ní hamháin go ndéanaimid é a chomhbhrú, a chriptiú agus a sheoladh chuig an líonra, ach go léifimid é ag an am céanna freisin. Déanaimid anailís agus léamh ar na taifid atá ann. Tuigimid cé na bloic atá athraithe agus bailímid comhaid deilt.

Déanann comhad deilt cur síos ar raon áirithe de chomhaid WAL, cuireann sé síos ar fhaisnéis faoi na bloic a athraíodh sa raon WAL seo. Agus ansin cuirtear na comhaid deilt seo i gcartlann freisin.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Anseo táimid ag tabhairt aghaidhe ar an bhfíric go ndearnamar gach rud comhthreomhar go tapa go leor, ach ní féidir linn stair seicheamhach a léamh i gcomhthráth, mar is féidir linn teacht ar chríoch an taifid WAL roimhe seo i mír áirithe, nach bhfuil aon rud le baint againn leis go fóill, mar gheall ar ba é an toradh a bhí ar an léitheoireacht chomhthreomhar ná go ndéanaimid anailís ar an todhchaí ar dtús, rud nach bhfuil san am atá caite go fóill.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Mar thoradh air sin, bhí orainn píosaí dothuigthe a chur i gcomhaid _delta_partial. Mar thoradh air sin, nuair a fhilleann muid ar an am atá caite, cuirfimid na píosaí den taifead WAL isteach i gceann amháin, ina dhiaidh sin déanfaimid é a pharsáil agus tuigfimid cad a d'athraigh ann.

Más rud é i stair ár bparsála seafta tá pointe amháin ar a laghad ann nach dtuigeann muid cad a bhí ag tarlú, ansin, dá réir sin, le linn an chéad chúltaca eile beidh orainn an braisle iomlán a léamh arís, díreach mar a rinneamar le LSN rialta. -bhunaithe deilt.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Mar thoradh air sin, ba é an toradh a bhí ar ár bhfulaingt go léir ná gur chuireamar foinse oscailte ar fáil don leabharlann parsála WAL-G. Chomh fada agus is eol dom, níl aon duine ag baint úsáide as go fóill, ach má tá aon duine ag iarraidh é, é a scríobh agus a úsáid, tá sé i mbéal an phobail. (Nasc nuashonraithe https://github.com/wal-g/wal-g/tree/master/internal/walparser)

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Mar thoradh air sin, tá cuma casta go leor ar gach sreabhadh faisnéise. Déanann ár Máistir na comhaid deilt seafta agus cartlainne a chartlannú. Agus caithfidh an macasamhail a dhéanann an cóip chúltaca comhaid deilt a fháil le linn an ama atá caite idir na cúltacaí. Sa chás seo, beidh gá codanna den stair a chur leis ar an mórchóir agus a pharsáil, toisc nach n-oireann an stair iomlán do mhíreanna móra. Agus go dtí seo is féidir leis an macasamhail cúltaca iomlán deilt a chartlannú.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Ar na graif tá gach rud i bhfad níos simplí. Is íoslódáil é seo ó cheann dár mbraislí fíor. Tá LSN-bhunaithe againn, déanta in aon lá amháin. Agus feicimid go raibh an cúltaca deilt bunaithe ar LSN ar siúl ó thrí ar maidin go cúig ar maidin. Is é seo an t-ualach ar líon na cores próiseálaí. Thóg WAL-delta thart ar 20 nóiméad dúinn anseo.Is é sin, d'éirigh sé i bhfad níos tapúla, ach ag an am céanna bhí malartú níos déine ar an líonra.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Ós rud é go bhfuil faisnéis againn faoi na bloic a d'athraigh agus cén t-am i stair an bhunachair sonraí, chuaigh muid níos faide agus shocraigh muid feidhmiúlacht a chomhtháthú - síneadh PostgreSQL ar a dtugtar "pg_prefaulter"

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Ciallaíonn sé seo nuair a fheidhmíonn an bonn cúltaca an t-ordú athshlánaithe, go n-insíonn sé do WAL-G an chéad chomhad WAL eile a fháil. Tuigimid thart ar na bloic sonraí a mbeidh rochtain ag an bpróiseas aisghabhála WAL orthu go luath amach anseo agus a thionscnóidh oibríocht léite ar na bloic sin. Rinneadh é seo chun feidhmíocht rialtóirí SSD a mhéadú. Toisc go sroichfidh an rolla WAL an leathanach is gá a athrú. Tá an leathanach seo ar diosca agus níl sé i dtaisce an leathanaigh. Agus fanfaidh sé go sioncronach go dtiocfaidh an leathanach seo. Ach in aice láimhe tá WAL-G, a bhfuil a fhios aige go mbeidh leathanaigh áirithe de dhíth orainn sna céad cúpla meigeavata eile de WAL agus go dtosóidh sé ag an am céanna iad a théamh suas. Cuireann sé tús le il-rochtain diosca ionas go ndéantar iad a fhorghníomhú go comhthreomhar. Oibríonn sé seo go maith ar thiomáineann SSD, ach, ar an drochuair, níl sé infheidhme maidir le tiomántán crua, toisc nach gcuirimid isteach air ach lenár leideanna.

Seo a bhfuil sa chód anois.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Tá gnéithe ann ar mhaith linn cur leo.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Léiríonn an pictiúr seo go dtógann WAL-delta achar réasúnta gearr. Agus tá sé seo ag léamh na hathruithe a tharla sa bhunachar sonraí i rith an lae. D'fhéadfaimis WAL-delta a dhéanamh ní hamháin ar an oíche, toisc nach foinse ualach suntasach é a thuilleadh. Is féidir linn WAL-delta a léamh gach nóiméad mar tá sé saor. I gceann nóiméad is féidir linn na hathruithe go léir a tharla don bhraisle a scanadh. Agus d'fhéadfaí "WAL-delta" a thabhairt air seo láithreach.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Is é an pointe ná nuair a dhéanaimid an braisle a athchóiriú, laghdaítear líon na scéalta a chaithfidh muid a rolladh suas go seicheamhach. Is é sin, an méid WAL ba cheart rollaí PostgreSQL a laghdú, toisc go dtógann sé go leor ama.

Ach ní hé sin go léir. Má tá a fhios againn go n-athrófar bloc éigin go dtí an pointe comhsheasmhachta cúltaca, ní féidir linn é a athrú san am atá caite. Is é sin, anois tá optamú comhad-ar-chomhad againn ar chur ar aghaidh WAL-delta. Ciallaíonn sé seo, mar shampla, más rud é, ar an Máirt, go ndearnadh tábla a scriosadh go hiomlán nó gur scriosadh roinnt comhad go hiomlán ón tábla, ansin nuair a athshocraítear pg_basebackup Dé Luain agus Dé Sathairn, ní chruthóimid na sonraí seo fiú.

Ba mhaith linn an teicneolaíocht seo a leathnú go dtí leibhéal an leathanaigh. Is é sin, má athraíonn cuid den chomhad Dé Luain, ach go ndéanfar é a fhorscríobh ar an gCéadaoin, ansin nuair a athchóirítear go pointe ar an Déardaoin, ní gá dúinn an chéad chúpla leagan de na leathanaigh a scríobh ar diosca.

Ach tá sé seo fós ina smaoineamh atá á phlé go gníomhach laistigh dúinn, ach níl an cód bainte amach aige fós.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Ba mhaith linn gné amháin eile a dhéanamh i WAL-G. Ba mhaith linn é a leathnú mar ní mór dúinn tacú le bunachair shonraí éagsúla agus ba mhaith linn a bheith in ann dul i ngleic le bainistíocht cúltaca ar an mbealach céanna. Ach is í an fhadhb atá ann go bhfuil na APIs MySQL an-difriúil. I MySQL, tá PITR bunaithe ní ar an loga fisiciúil WAL, ach ar an binlog. Agus níl córas cartlainne againn i MySQL a thabharfadh le fios do chóras seachtrach éigin go bhfuil an binlog seo críochnaithe agus gur gá é a chur i gcartlann. Ní mór dúinn seasamh áit éigin i cron leis an mbunachar sonraí agus seiceáil an bhfuil rud éigin réidh?

Agus ar an mbealach céanna, le linn athchóiriú MySQL, níl aon ordú athshlánaithe a d'fhéadfadh a rá leis an gcóras go bhfuil comhaid den sórt sin agus comhaid den sórt sin ag teastáil uaim. Sula dtosaíonn tú ag atógáil do bhraisle, ní mór duit fios a bheith agat cad iad na comhaid a bheidh uait. Ní mór duit féin buille faoi thuairim a dhéanamh ar na comhaid a bheidh uait. Ach d’fhéadfadh go bhféadfaí dul timpeall ar na fadhbanna seo ar bhealach éigin. (Soiléiriú: tá tacaíocht ag MySQL cheana féin)

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Sa tuarascáil, theastaigh uaim freisin labhairt faoi na cásanna sin nuair nach bhfuil WAL-G oiriúnach duit.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Mura bhfuil macasamhail sioncrónach agat, ní chinntíonn WAL-G go gcaomhnófar an mhír dheiridh. Agus má tá an chartlannú taobh thiar de na codanna deireanacha den stair, is baol é sin. Mura bhfuil macasamhail sioncronach ann, ní mholfainn WAL-G a úsáid. Fós féin, tá sé deartha go príomha le haghaidh suiteáil scamall, rud a thugann le tuiscint réiteach Ard-Infhaighteachta le macasamhail sioncrónach, atá freagrach as sábháilteacht na mbeart deireanach atá geallta.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Is minic a fheicim daoine ag iarraidh WAL-G agus WAL-E araon a rith ag an am céanna. Tacaímid le comhoiriúnacht ar gcúl sa chiall gur féidir le WAL-G comhad a athbhunú ó WAL-E agus gur féidir leis cúltaca a rinneadh in WAL-E a athbhunú. Ach ós rud é go n-úsáideann an dá chóras seo brú comhthreomhar, tosaíonn siad ag goid comhaid óna chéile. Má shocraíonn muid é in WAL-G, fanfaidh sé fós i WAL-E. In WAL-E, breathnaíonn sé ar stádas cartlainne, feiceann sé na comhaid críochnaithe agus cuireann sé iad i gcartlann, agus ní bheidh a fhios ag córais eile go raibh an comhad WAL seo ann, mar ní dhéanfaidh PostgreSQL iarracht é a chur i gcartlann an dara huair.

Cad atáimid chun a shocrú anseo ar thaobh WAL-G? Ní chuirfimid in iúl do PostgreSQL gur aistríodh an comhad seo go comhthreomhar, agus nuair a iarrann PostgreSQL orainn é a chartlannú, beidh a fhios againn cheana féin go bhfuil comhad den sórt sin leis an modh-am seo agus leis an md5 seo curtha i gcartlann cheana féin agus déarfaimid go simplí PostgreSQL - OK, tá gach rud réidh gan rud ar bith a dhéanamh go bunúsach.

Ach ní dócha go mbeidh an fhadhb seo socraithe ar thaobh WAL-E, agus mar sin tá sé dodhéanta faoi láthair ordú cartlainne a chruthú a chartlannóidh an comhad i WAL-G agus WAL-E araon.

Ina theannta sin, tá cásanna ann nach bhfuil WAL-G oiriúnach duit anois, ach déanfaimid cinnte é a shocrú.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey BorodinAr an gcéad dul síos, níl fíorú cúltaca ionsuite againn faoi láthair. Níl fíorú againn le linn cúltaca nó athshlánaithe. Ar ndóigh, tá sé seo i bhfeidhm sa scamall. Ach cuirtear é seo i bhfeidhm go simplí trí réamhsheiceáil, go simplí tríd an mbraisle a athchóiriú. Ba mhaith liom an fheidhmiúlacht seo a thabhairt d'úsáideoirí. Ach trí fhíorú, glacaim leis go mbeidh sé indéanta in WAL-G an braisle a athbhunú agus é a thosú, agus tástálacha deataigh a reáchtáil: pg_dumpall go /dev/null agus fíorú innéacs amcheck.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Faoi láthair in WAL-G níl aon bhealach le cúltaca amháin ó WAL a chur siar. Is é sin, tacaímid le fuinneog éigin. Mar shampla, na seacht lá seo caite a stóráil, na deich gcúltaca deiridh a stóráil, na trí chúltaca iomlána deiridh a stóráil. Is minic a thagann daoine agus a deir: “Tá gá againn le cúltaca den méid a tharla ar an Bhliain Nua agus ba mhaith linn é a choinneáil go deo.” Ní féidir le WAL-G é seo a dhéanamh go fóill. (Nóta - Tá sé seo socraithe cheana féin. Léigh tuilleadh - Rogha marc cúltaca i https://github.com/wal-g/wal-g/blob/master/PostgreSQL.md)

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Agus níl seiceálacha leathanach agus seiceálacha sláine againn do gach deighleog seafta agus PITR á bhailíochtú againn.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

As seo go léir chuir mé tionscadal le chéile do Google Summer of Code. Má tá aithne agat ar mhic léinn chliste ar mhaith leo rud éigin a scríobh in Go agus na mílte dollar a fháil ó chuideachta amháin leis an litir “G”, ansin molaim ár dtionscadal dóibh. Gníomhóidh mé mar mheantóir don tionscadal seo, is féidir leo é a dhéanamh. Mura bhfuil mic léinn ann, tógfaidh mé é agus déanfaidh mé mé féin sa samhradh.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Agus tá go leor fadhbanna beaga eile againn a bhfuilimid ag obair orthu de réir a chéile. Agus tarlaíonn roinnt rudaí aisteach go leor.

Mar shampla, má thugann tú cúltaca folamh do WAL-G, beidh sé ag titim go simplí. Mar shampla, má insíonn tú dó go gcaithfidh sé cúltaca a dhéanamh ar fhillteán folamh. Ní bheidh an comhad pg_control ann. Agus beidh sé ag smaoineamh nach dtuigeann sé rud éigin. Go teoiriciúil, sa chás seo ní mór duit gnáth-theachtaireacht a scríobh chuig an úsáideoir chun a mhíniú dó conas an uirlis a úsáid. Ach ní gné de ríomhchlárú é seo, ach gné de theanga mhaith intuigthe.

Níl a fhios againn conas cúltaca as líne a dhéanamh. Má tá an bunachar sonraí suite, ní féidir linn cúltaca a dhéanamh air. Ach tá gach rud an-simplí anseo. Glaoimid cúltacaí ag LSN nuair a thosaigh sé. Ní mór LSN an bhunáit a léamh ón gcomhad rialaithe. Agus is gné neamhréadaithe den sórt sin é seo. Is féidir le go leor córais chúltaca cúltaca a dhéanamh de bhunachar sonraí. Agus tá sé áisiúil.

Ní féidir linn an easpa spáis chúltaca a láimhseáil i gceart faoi láthair. Toisc go n-oibrímid de ghnáth le cúltacaí móra sa bhaile. Agus níor tháinig siad timpeall air. Ach más mian le duine ríomhchlárú in Téigh anois, cuir láimhseáil earráidí lasmuigh den spás leis an mbuicéad. Breathnóidh mé go cinnte ar an iarratas tarraingt.

Agus is é an rud is mó a chuireann imní orainn ná go dteastaíonn uainn an oiread tástálacha comhtháthú duga agus is féidir a sheiceálann cásanna éagsúla. Faoi láthair nílimid ag tástáil ach cásanna bunúsacha. Ar gach gealltanas, ach ba mhaith linn a sheiceáil tiomantas-ar-gealltanas an fheidhmiúlacht go léir a dtacaímid leo. Go háirithe, mar shampla, beidh go leor tacaíochta againn do PostgreSQL 9.4-9.5. Tacaímid leo toisc go dtacaíonn an pobal le PostgreSQL, ach ní dhéanaimid seiceáil tiomantas-le-tiomantas chun a chinntiú nach bhfuil gach rud briste. Agus feictear dom gur riosca sách tromchúiseach é seo.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

Tá WAL-G againn ag rith ar níos mó ná míle braisle i mbainistíocht Bunachar Sonraí Yandex. Agus déanann sé cúltaca de na céadta terabytes de shonraí gach lá.

Tá go leor TODO inár gcód. Más mian leat clár a dhéanamh, teacht, táimid ag fanacht le hiarratais tarraingt, táimid ag fanacht le ceisteanna.

Cúltacaí ó WAL-G. Cad atá ann in 2019? Andrey Borodin

ceisteanna

Tráthnóna maith! Go raibh maith agat! Is é an buille faoi thuairim atá agam ná má tá WAL-delta á úsáid agat, is dócha go bhfuil tú ag brath go mór ar scríbhinní lán-leathanach. Agus más ea, ar rith tú tástálacha? Thaispeáin tú graf álainn. Cé mhéad níos áille a bheidh ann má dhéantar FPW a mhúchadh?

Tá scríbhinní lán-leathanaigh cumasaithe dúinn, níl iarracht déanta againn é a dhíchumasú. Is é sin, níl mé, mar fhorbróir, tar éis iarracht é a mhúchadh. Is dócha go ndearna riarthóirí córais a bhfuil taighde déanta acu taighde ar an gceist seo. Ach teastaíonn FPW uainn. Ní dhíchumasaíonn beagnach aon duine é, mar ar shlí eile ní féidir cúltaca a bhaint as macasamhail.

Go raibh maith agat as an tuairisc! Tá dhá cheist agam. Is í an chéad cheist cad a tharlóidh do spásanna boird?

Táimid ag fanacht le hiarratas tarraingt. Tá ár mbunachair shonraí beo ar dhioscaí SSD agus NMVE agus níl an ghné seo de dhíth orainn i ndáiríre. Níl mé réidh am dáiríre a chaitheamh faoi láthair ar é a dhéanamh go maith. Molaim ó chroí go dtacaímid leis seo. Tá daoine ann a thacaigh leis, ach a thacaigh leis ar bhealach a oireann dóibh. Rinne siad forc, ach ní dhéanann siad iarratais tarraingt. (Curtha leis i leagan 0.2.13)

Agus an dara ceist. Dúirt tú ag an tús go nglacann WAL-G leis go n-oibríonn sé leis féin agus nach bhfuil gá le cumhdaigh. Úsáidim fillteáin mé féin. Cén fáth nár chóir iad a úsáid?

Ba mhaith linn go mbeadh sé chomh simplí leis an balalaika. Ciallaíonn sé seo nach bhfuil aon rud ag teastáil uait ach amháin balalaika. Teastaíonn uainn go mbeidh an córas simplí. Má tá feidhmiúlacht agat nach mór duit a dhéanamh i script, ansin tar agus inis dúinn - déanfaimid é in Téigh.

Tráthnóna maith! Go raibh maith agat as an tuairisc! Níorbh fhéidir linn WAL-G a fháil chun oibriú le díchriptiú GPG. Criptíonn sé de ghnáth, ach níl sé ag iarraidh é a dhíchriptiú. An rud é nár oibrigh amach dúinn? Tá an scéal dubhach.

Cruthaigh saincheist ar GitHub agus déanaimis é a dhéanamh amach.

Is é sin, nach bhfuil tú tar éis teacht ar seo?

Tá gné den tuarascáil earráide nuair nach dtuigeann WAL-G cén cineál comhaid atá ann, fiafraíonn sé: “B’fhéidir go bhfuil sé criptithe?” B'fhéidir nach bhfuil an fhadhb criptithe ar chor ar bith. Ba mhaith liom an logáil ar an ábhar seo a fheabhsú. Caithfidh sé é a dhéanamh amach. Táimid ag obair ar an ábhar seo faoi láthair sa chiall nach dtaitníonn an chaoi a n-eagraítear an córas chun eochracha poiblí agus príobháideacha a fháil. Toisc go dtugaimid GPG seachtrach ionas go dtugann sé a chuid eochracha dúinn. Agus ansin glacaimid na heochracha seo agus aistrímid iad chuig an GPG inmheánach, atá oscailte PGP, a chuirtear le chéile dúinn taobh istigh de WAL-G, agus ansin tugaimid criptiú. Maidir leis seo, ba mhaith linn an córas a fheabhsú agus ba mhaith linn tacú le criptiú Libsodium (Arna chur leis i leagan 0.2.15). Ar ndóigh, ba chóir go n-oibreodh díchódú, déanaimis é a dhéanamh amach - is mó de shíomptóim atá uait ná cúpla focal. Is féidir leat a bhailiú i seomra an chainteora am éigin agus breathnú ar an gcóras. (Criptiúchán PGP gan GPG seachtrach - v0.2.9)

Dia dhuit! Go raibh maith agat as an tuairisc! Tá dhá cheist agam. Tá fonn aisteach orm pg_basebackup agus logáil WAL isteach dhá sholáthraí, ie ba mhaith liom scamall amháin agus ceann eile a dhéanamh. An bhfuil bealach éigin chun é seo a dhéanamh?

Níl sé seo ann anois, ach is smaoineamh suimiúil é.

Níl muinín agam ach as soláthraí amháin, ba mhaith liom an rud céanna a bheith agam i gceann eile, ar eagla na heagla.

Tá an smaoineamh suimiúil. Go teicniúil, níl sé seo deacair ar chor ar bith a chur i bhfeidhm. Chun an smaoineamh a chosc ó dhul amú, an féidir liom iarraidh ort ceist a dhéanamh ar GitHub?

Sea, ar ndóigh.

Agus ansin, nuair a thagann mic léinn chuig Google Summer of Code, cuirfimid leis an tionscadal iad ionas go mbeidh níos mó oibre ann chun níos mó a bhaint astu.

Agus an dara ceist. Tá fadhb ar GitHub. Sílim go bhfuil sé dúnta cheana féin. Tá scaoll le linn athchóiriú. Agus chun é a ruaigeadh, rinne tú tionól ar leith. Tá sé ceart i saincheisteanna. Agus tá rogha ann timpeallacht athraitheach a dhéanamh i snáithe amháin. Agus sin an fáth a oibríonn sé go han-mhall. Agus tháinig muid ar an bhfadhb seo, agus níl sé socraithe fós.

Is í an fhadhb atá ann go bhfuil ar chúis éigin an stóráil (CEPH) resets an nasc nuair a thagann muid chuige le concurrency ard. Cad is féidir a dhéanamh faoi seo? Breathnaíonn an loighic retry mar seo. Táimid ag iarraidh an comhad a íoslódáil arís. I bpas amháin, bhí roinnt comhad againn nár íoslódáladh, déanfaimid an dara ceann dóibh siúd nár logáil isteach. Agus chomh fada agus a luchtaítear comhad amháin ar a laghad in aghaidh an atriallta, déanaimid arís agus arís eile agus arís eile. D'fheabhsaíomar loighic atriail - cúlú easpónantúil. Ach níl sé soiléir go hiomlán cad atá le déanamh leis an bhfíric go mbriseann an nasc ar thaobh an chórais stórála. Is é sin, nuair a dhéanaimid uaslódáil chuig sruth amháin, ní bhriseann sé na naisc seo. Cad is féidir linn a fheabhsú anseo? Tá sníomh líonra againn, is féidir linn gach nasc a theorannú de réir líon na mbeart a sheolann sé. Seachas sin, níl a fhios agam conas déileáil leis an bhfíric nach ligeann stóráil réad dúinn é a íoslódáil nó a íoslódáil go comhthreomhar.

Uimh SLA? Nach bhfuil sé scríofa dóibh conas a ligeann siad dóibh féin a bheith cráite?

Is é an pointe go mbíonn a cruinneachán féin ag daoine a thagann suas leis an gceist seo de ghnáth. Is é sin, ní thagann aon duine ó Amazon nó Google Cloud nó Yandex Object Storage.

B'fhéidir nach bhfuil an cheist ar do shon a thuilleadh?

Ní hionann an cheist anseo sa chás seo cé leis. Má tá aon smaointe ann maidir le conas déileáil leis seo, déanaimis é i WAL-G. Ach go dtí seo níl aon smaointe maith agam maidir le conas déileáil leis seo. Tá roinnt Stóráil Object ann a thacaíonn le liostú cúltacaí ar bhealach difriúil. Iarrann tú orthu rudaí a liostú, agus cuireann siad fillteán leis ansin. Bíonn faitíos ar WAL-G faoi seo - tá rud éigin anseo nach comhad é, ní féidir liom é a chur ar ais, rud a chiallaíonn nár athchóiríodh an cúltaca. Is é sin, go deimhin, tá braisle iomlán athchóirithe agat, ach cuireann sé stádas earráideach ar ais duit mar gheall ar chuir Object Storage roinnt faisnéise aisteach ar ais nár thuig sé go hiomlán.

Is é seo an rud a tharlaíonn sa scamall Mail.

Más féidir leat atáirgeadh a thógáil...

Déantar é a atáirgeadh go comhsheasmhach ...

Má tá atáirgeadh ann, is dóigh liom go ndéanfaimid triail ar straitéisí atriail agus déanfaimid amach conas a thriailfidh an scamall arís agus go dtuigfimid cad a éilíonn an scamall uainn. B'fhéidir go mbeidh sé cobhsaí dúinn ar thrí nasc agus ní bhriseann sé an nasc, ansin sroichfimid trí cinn go cúramach. Toisc anois scaoilimid an nasc go han-tapa, ie má sheolamar aisghabháil le 16 snáithe, ansin tar éis an chéad athiarracht beidh 8 snáithe, 4 snáithe, 2 snáithe agus ceann amháin. Agus ansin tarraingfidh sé an comhad i sruth amháin. Má tá roinnt luachanna draíochta cosúil le 7,5 snáitheanna is fearr le haghaidh caidéalaithe, ansin déanfaimid dwell orthu agus déanfaimid iarracht 7,5 snáithe eile a dhéanamh. Seo smaoineamh.

Go raibh maith agat as an tuairisc! Cén chuma atá ar shreabhadh oibre iomlán le haghaidh oibriú le WAL-G? Mar shampla, sa chás dúr nuair nach bhfuil aon delta trasna leathanaigh. Agus glacann muid agus bainimid an cúltaca tosaigh, ansin cartlann an seafta go dtí go bhfuil muid gorm san aghaidh. Anseo, de réir mar a thuigim é, tá briseadh síos. Ag am éigin is gá duit cúltaca deilt a dhéanamh de na leathanaigh, i.e. tá próiseas seachtrach éigin á thiomáint seo nó conas a tharlaíonn sé seo?

Tá an API cúltaca delta simplí go leor. Tá uimhir ann – uaschéimeanna deilt, sin an t-ainm a thugtar uirthi. Mainneachtainí sé go nialas. Ciallaíonn sé seo go n-íoslódálann sé cúltaca iomlán gach uair a dhéanann tú brú cúltaca. Má athraíonn tú é go haon uimhir dhearfach, mar shampla, 3, ansin an chéad uair eile a dhéanann tú brú cúltaca, breathnaíonn sé ar stair na gcúltacaí roimhe seo. Feiceann sé nach sáraíonn tú an slabhra de 3 deilt agus déanann sé deilt.

Is é sin, gach uair a sheolaimid WAL-G, déanann sé iarracht cúltaca iomlán a dhéanamh?

Ní hea, rithimid WAL-G, agus déanann sé iarracht deilt a dhéanamh má cheadaíonn do chuid polasaithe é.

Go garbh, má ritheann tú é le nialas gach uair, beidh sé féin a iompar mar pg_basebackup?

Ní hea, beidh sé fós ar siúl níos tapúla toisc go n-úsáideann sé comhbhrú agus comhthreomhar. Cuirfidh pg_basebackup an seafta in aice leat. Glacann WAL-G leis go bhfuil an chartlann cumraithe agat. Agus eiseoidh sé rabhadh mura bhfuil sé cumraithe.

Is féidir pg_basebackup a reáchtáil gan shafts.

Sea, ansin beidh siad iad féin a iompar beagnach mar an gcéanna. Pg_basebackup cóipeanna chuig an gcóras comhad. Dála an scéil, tá gné nua againn a ndearna mé dearmad air a lua. Is féidir linn cúltaca a dhéanamh anois chuig an gcóras comhad ó pg_basebackup. Níl a fhios agam cén fáth a bhfuil gá leis seo, ach tá sé ann.

Mar shampla, ar CephFS. Níl gach duine ag iarraidh Stóráil Cuspóir a chumrú.

Sea, is dócha gurb é sin an fáth ar chuir siad ceist faoin ngné seo ionas go bhféadfaimis é a dhéanamh. Agus rinne muid é.

Go raibh maith agat as an tuairisc! Níl ann ach ceist faoi chóipeáil go dtí an córas comhaid. Amach as an mbosca, an dtacaíonn tú anois le cóipeáil chuig cianstóráil, mar shampla, má tá seilf éigin sa lárionad sonraí nó rud éigin eile?

Sa fhoirmliú seo, is ceist deacair é seo. Sea, tacaímid, ach níl an fheidhmiúlacht seo san áireamh in aon eisiúint fós. Is é sin, tacaíonn gach réamh-eisiúint leis seo, ach ní dhéanann na leaganacha scaoileadh. Cuireadh an fheidhmiúlacht seo leis i leagan 0.2. Is cinnte go scaoilfear amach é go luath, chomh luath agus a shocróidh muid na fabhtanna ar fad atá ar eolas. Ach faoi láthair ní féidir é seo a dhéanamh ach amháin i réamhscaoileadh. Tá dhá fhabht sa réamhscaoileadh. Fadhb le téarnamh WAL-E, níl sé socraithe againn. Agus sa réamhscaoileadh is déanaí cuireadh fabht faoi chúltaca deilt. Dá bhrí sin, molaimid do gach duine na leaganacha scaoileadh a úsáid. Chomh luath agus nach bhfuil níos mó fabhtanna sa réamhscaoileadh, is féidir linn a rá go dtacaímid le Google Cloud, rudaí atá comhoiriúnach le S3 agus stóráil comhad.

Dia duit, go raibh maith agat as an tuarascáil. De réir mar a thuigim é, nach córas láraithe de shaghas éigin é WAL-G cosúil le barmen? An bhfuil sé ar intinn agat bogadh sa treo seo?

Is í an fhadhb atá ann go bhfuil muid tar éis bogadh ar shiúl ón treo seo. Tá WAL-G ina chónaí ar an mbunóstach, ar an óstach braisle, agus ar gach óstach sa bhraisle. Nuair a bhogamar chuig na mílte braislí, bhí go leor suiteálacha tábhairne againn. Agus gach uair a thiteann rud as a chéile iontu, is fadhb mhór é. Toisc gur gá iad a dheisiú, ní mór duit a thuiscint cé na braislí nach bhfuil cúltacaí acu anois. Níl sé beartaithe agam WAL-G a fhorbairt i dtreo crua-earraí fisiceacha do chórais chúltaca. Má tá feidhmiúlacht éigin ag teastáil ón bpobal anseo, ní miste liom ar chor ar bith.

Tá foirne againn atá freagrach as stóráil. Agus mothaímid chomh maith sin nach sinne atá ann, go bhfuil daoine speisialta ann a chuireann ár gcomhaid in áit a bhfuil na comhaid sábháilte. Déanann siad gach cineál códaithe cliste ansin chun cailliúint líon áirithe comhad a sheasamh. Tá siad freagrach as bandaleithead líonra. Nuair a bhíonn tábhairne agat, b'fhéidir go bhfaighidh tú amach go tobann go bhfuil bunachair shonraí beaga le go leor tráchta bailithe ar an bhfreastalaí céanna. Is cosúil go bhfuil go leor spáis agat air, ach ar chúis éigin ní luíonn gach rud tríd an líonra. Féadfaidh sé dul amach an bealach eile timpeall. Tá go leor líonraí ann, tá croíleacáin phróiseálaithe ann, ach níl aon dioscaí anseo. Agus d'éirigh muid tuirseach den riachtanas seo le rud éigin a juggle, agus bhog muid go dtí an bhfíric gur seirbhís ar leith é stóráil sonraí, a bhfuil daoine speisialta ar leith freagrach as.

PS Tá leagan nua eisithe 0.2.15, inar féidir leat an comhad cumraíochta .walg.json a úsáid, atá suite san eolaire baile postgres de réir réamhshocraithe. Is féidir leat scripteanna bash a thréigean. Tá sampla .walg.json san eagrán seo https://github.com/wal-g/wal-g/issues/545

Físeán:



Foinse: will.com

Add a comment