Delta: Ardán Sioncrónaithe agus Saibhrithe Sonraí

In oirchill seoladh sreabhadh nua ag an ráta Innealtóir Sonraí Tá aistriúchán d’ábhar suimiúil ullmhaithe againn.

Delta: Ardán Sioncrónaithe agus Saibhrithe Sonraí

Athbhreithniú a dhéanamh ar

Labhróimid faoi phatrún coitianta go leor trína n-úsáideann feidhmchláir stórtha sonraí iolracha, ina n-úsáidtear gach stór chun a chuspóirí féin, mar shampla, chun foirm chanónach sonraí a stóráil (MySQL, etc.), chun ardchumais cuardaigh a sholáthar (ElasticSearch, etc.), caching (Memcached, etc.) agus daoine eile. De ghnáth, nuair a bhíonn stór sonraí iolracha á n-úsáid, feidhmíonn ceann acu mar phríomhstóras agus na cinn eile mar stórais díorthacha. Is é an t-aon fhadhb atá ann ná conas na stórtha sonraí seo a shioncronú.

D'fhéachamar ar roinnt patrúin éagsúla a rinne iarracht an fhadhb a bhaineann le sioncrónú stórais iolracha a réiteach, mar shampla scríbhinní dúbailte, idirbhearta dáilte, etc. Mar sin féin, tá teorainneacha suntasacha ag baint leis na cineálacha cur chuige seo ó thaobh úsáide fíorshaoil, iontaofachta agus cothabhála. Chomh maith le sioncrónú sonraí, ní mór do roinnt feidhmchlár sonraí a shaibhriú trí ghlaoch a chur ar sheirbhísí seachtracha.

Forbraíodh Delta chun na fadhbanna seo a réiteach. I ndeireadh na dála, soláthraíonn Delta ardán comhsheasmhach, bunaithe ar imeachtaí, chun sonraí a shioncronú agus a shaibhriú.

Réitigh atá ann cheana

Iontráil dúbailte

Chun dhá stór sonraí a choinneáil i gcomhshioncronú, is féidir leat déscríobh a úsáid, a scríobhann chuig siopa amháin agus a scríobhann chuig an siopa eile díreach ina dhiaidh sin. Is féidir an chéad taifeadadh a aisghabháil agus is féidir deireadh a chur leis an dara ceann má theipeann ar an gcéad cheann tar éis líon na n-iarrachtaí a bheith ídithe. Mar sin féin, seans go n-éireoidh an dá stór sonraí as sioncronú má theipeann ar scríobh chuig an dara siopa. Réitítear an fhadhb seo de ghnáth trí nós imeachta aisghabhála a chruthú a fhéadfaidh sonraí a athaistriú go tréimhsiúil ón gcéad stóráil go dtí an dara ceann, nó é sin a dhéanamh ach amháin má aimsítear difríochtaí sna sonraí.

Fadhbanna:

Is post sonrach é nós imeachta aisghabhála a dhéanamh nach féidir a athúsáid. Ina theannta sin, fanann sonraí idir láithreacha stórála as sioncronú go dtí go dtarlaíonn an nós imeachta athchóirithe. Éiríonn an réiteach níos casta má úsáidtear níos mó ná dhá stór sonraí. Ar deireadh, is féidir leis an nós imeachta athchóirithe ualach a chur leis an bhfoinse sonraí bunaidh.

Athraigh tábla logála

Nuair a tharlaíonn athruithe ar shraith táblaí (cosúil le taifead a chur isteach, a nuashonrú agus a scriosadh), cuirtear na taifid athraithe leis an tábla logála mar chuid den idirbheart céanna. Iarrann snáithe nó próiseas eile imeachtaí ón tábla logála i gcónaí agus scríobhann sé iad chuig stór sonraí amháin nó níos mó, más gá, ag baint imeachtaí as an tábla logála tar éis don taifead a bheith deimhnithe ag gach stór.

Fadhbanna:

Ba cheart an patrún seo a chur i bhfeidhm mar leabharlann, agus go hidéalach gan cód an fheidhmchláir a úsáideann é a athrú. I dtimpeallacht polyglot, ba cheart go mbeadh cur i bhfeidhm leabharlann den sórt sin ann in aon teanga riachtanach, ach tá sé thar a bheith deacair comhsheasmhacht feidhmiúlacht agus iompar trasna teangacha a chinntiú.

Fadhb eile is ea athruithe scéimre a fháil i gcórais nach dtacaíonn le hathruithe scéimre idirbhirt [1][2], mar MySQL. Mar sin, ní oibreoidh an patrún a bhaineann le hathrú a dhéanamh (mar shampla, athrú scéimre) agus é a thaifeadadh go hidirbheartach sa tábla logála athraithe.

Idirbhearta Dáilte

Is féidir idirbhearta dáileacháin a úsáid chun idirbheart a roinnt thar stórtha sonraí ilchineálacha iolracha ionas go mbeidh an oibríocht tiomanta do gach ceann de na stórtha sonraí a úsáidtear, nó nach bhfuil sí tiomanta d’aon cheann acu.

Fadhbanna:

Fadhb an-mhór do stórtha sonraí ilchineálacha is ea idirbhearta dáilte. De réir a nádúir, ní féidir leo brath ach ar an gcomhainmneoir is ísle de na córais atá i gceist. Mar shampla, cuireann idirbhearta XA bac ar fhorghníomhú má theipeann ar an bpróiseas iarratais le linn na céime ullmhúcháin. Ina theannta sin, ní sholáthraíonn XA braite gan stad ná ní thacaíonn sé le scéimeanna rialaithe comhairgeadra dóchasach. Ina theannta sin, ní thacaíonn roinnt córais cosúil le ElasticSearch le XA nó le haon mhúnla ilchineálach idirbhirt. Dá bhrí sin, is tasc an-dúshlánach i gcónaí é adamhacht scríbhneoireachta i dteicneolaíochtaí stórála sonraí éagsúla d’fheidhmchláir [3].

Delta

Dearadh Delta chun aghaidh a thabhairt ar theorainneacha na réitigh sioncronaithe sonraí atá ann cheana féin agus cumasaíonn sé saibhriú sonraí ar an eitilt freisin. Ba é an sprioc a bhí againn an chastacht seo go léir a bhaint ó fhorbróirí feidhmchlár ionas gur féidir leo díriú go hiomlán ar fheidhmiúlacht ghnó a chur i bhfeidhm. Ansin beidh muid ag cur síos ar "Cuardach Scannán", an cás úsáide iarbhír do Netflix's Delta.

Úsáideann Netflix ailtireacht microservice go forleathan, agus de ghnáth freastalaíonn gach microservice ar chineál amháin sonraí. Tá faisnéis bhunúsach faoin scannán le fáil i micrisheirbhís ar a dtugtar Seirbhís Scannán, agus tá sonraí gaolmhara ar nós faisnéis faoi tháirgeoirí, aisteoirí, díoltóirí, agus mar sin de á mbainistiú ag roinnt micriseirbhísí eile (is iad sin Deal Service, Talent Service agus Vendor Service).
Is minic go gcaithfidh úsáideoirí gnó ag Netflix Studios cuardach a dhéanamh thar chritéir scannán éagsúla, agus is é sin an fáth go bhfuil sé an-tábhachtach dóibh a bheith in ann cuardach a dhéanamh ar na sonraí go léir a bhaineann le scannáin.

Roimh Delta, b'éigean don fhoireann chuardaigh scannáin sonraí a tharraingt ó il-mhicrseirbhísí sula ndéanfaí na sonraí scannáin a innéacsú. Ina theannta sin, bhí ar an bhfoireann córas a fhorbairt a thabharfadh an t-innéacs cuardaigh cothrom le dáta go tréimhsiúil trí athruithe a iarraidh ó mhicrisheirbhísí eile, fiú mura mbeadh aon athruithe ann. D’éirigh an córas seo casta go tapa agus deacair a chothabháil.

Delta: Ardán Sioncrónaithe agus Saibhrithe Sonraí
Fíor 1. Córas vótaíochta go Delta
Tar éis Delta a úsáid, rinneadh an córas a shimpliú chuig córas a bhí tiomáinte ag imeacht mar a thaispeántar san fhigiúr seo a leanas. Seoltar imeachtaí CDC (Athrú-Sonraí-Gabháil) chuig topaicí Keystone Kafka ag baint úsáide as Delta-Connector. Faigheann feidhmchlár Delta a tógadh ag baint úsáide as an gCreat Próiseála Sruth Delta (bunaithe ar Flink) imeachtaí CDC ó ábhar, saibhríonn sé iad trí ghlaoch ar mhicrisheirbhísí eile, agus ar deireadh cuireann sé na sonraí saibhrithe chuig innéacs cuardaigh in Elasticsearch. Tarlaíonn an próiseas iomlán beagnach i bhfíor-am, is é sin, a luaithe a dhéantar athruithe ar an stóras sonraí, déantar innéacsanna cuardaigh a nuashonrú.

Delta: Ardán Sioncrónaithe agus Saibhrithe Sonraí
Fíor 2. Píblíne sonraí ag baint úsáide as Delta
Sna hailt seo a leanas, déanfaimid cur síos ar oibriú an Delta-Connector, a nascann leis an stóráil agus a fhoilsíonn imeachtaí CDC chuig an gciseal iompair, arb é bonneagar tarchurtha sonraí fíor-ama é a thugann bealaí imeachtaí CDC chuig ábhair Kafka. Agus ag an deireadh, beidh muid ag caint faoi chreat próiseála sruth Delta, ar féidir le forbróirí feidhmchlár a úsáid le haghaidh próiseála sonraí agus loighic saibhrithe.

CDC (Athrú-Sonraí-Gabháil)

Tá seirbhís CDC forbartha againn ar a dtugtar Delta-Connector, ar féidir léi athruithe tiomanta a ghabháil ón stór sonraí i bhfíor-am agus iad a scríobh chuig sruth. Tógtar athruithe fíor-ama ó loga an idirbhirt agus na dumpaí stórála. Úsáidtear dumpaí mar de ghnáth ní stórálann logaí idirbheart stair iomlán na n-athruithe. De ghnáth déantar athruithe a shraithiú mar imeachtaí Delta, mar sin ní gá don fhaighteoir a bheith buartha faoi cén áit a dtagann an t-athrú.

Tacaíonn Delta-Connector le roinnt gnéithe breise mar:

  • Cumas sonraí aschuir saincheaptha a scríobh thar Kafka.
  • Cumas dumpaí láimhe a ghníomhachtú ag am ar bith do gach tábla, tábla ar leith, nó d'eochracha príomhúla ar leith.
  • Is féidir dumpaí a aisghabháil ina smután, mar sin ní gá tosú arís i gcás teipe.
  • Ní gá glais a chur ar tháblaí, rud atá thar a bheith tábhachtach chun a chinntiú nach gcuirfidh ár seirbhís bac ar thrácht scríofa bunachar sonraí riamh.
  • Infhaighteacht ard mar gheall ar chásanna iomarcacha i gCriosanna Infhaighteachta AWS.

Tacaímid le MySQL agus Postgres faoi láthair, lena n-áirítear imscaradh ar AWS RDS agus Aurora. Tacaímid freisin le Cassandra (ilmháistir). Is féidir leat tuilleadh sonraí a fháil faoi Delta-Connector anseo post blag.

Kafka agus an ciseal iompair saor in aisce,

Tá ciseal iompair imeachtaí Delta tógtha ar sheirbhís teachtaireachtaí an ardáin Keystone.

Go stairiúil, tá postáil ar Netflix optamaithe le haghaidh inrochtaineachta seachas fad saoil (féach thíos). alt roimhe seo). Ba é an comhbhabhtáil ná neamh-chomhsheasmhacht sonraí bróicéirí i gcásanna imeallacha éagsúla. Mar shampla, toghchán ceannaire neamhghlan freagrach as imeachtaí dúblacha nó caillte a bheith ag an bhfaighteoir.

Le Delta, theastaigh ráthaíochtaí marthanachta níos láidre uainn chun seachadadh imeachtaí CDC chuig siopaí díorthaithe a chinntiú. Chun na críche sin, mholamar braisle Kafka deartha go speisialta mar rud den chéad scoth. Is féidir leat breathnú ar roinnt socruithe bróicéir sa tábla thíos:

Delta: Ardán Sioncrónaithe agus Saibhrithe Sonraí

I gcnuasaigh Keystone Kafka, toghchán ceannaire neamhghlan san áireamh de ghnáth chun inrochtaineacht foilsitheoir a chinntiú. D’fhéadfadh go gcaillfí teachtaireacht dá bharr seo má thoghtar macasamhail neamhshioncronaithe mar cheannaire. Le haghaidh braisle nua ard-infhaighteachta Kafka, an rogha toghchán ceannaire neamhghlan múchta chun cailleadh teachtaireachta a chosc.

Mhéadaigh muid freisin fachtóir macasamhlú ó 2 go 3 agus macasamhla insync íosta 1 go 2. Teastaíonn ó gach foilsitheoir a scríobhann chuig an gcnuasach seo go bhfuil na teachtaireachtaí is déanaí a sheolann an foilsitheoir ag 2 as 3 mhacasamhail.

Nuair a thagann deireadh le cás bróicéireachta, cuirtear ásc nua in ionad an tseancheann. Mar sin féin, beidh ar an bróicéir nua teacht suas leis na macasamhla neamhshioncrónaithe, rud a d'fhéadfadh roinnt uaireanta a ghlacadh. Chun an t-am athshlánaithe don chás seo a laghdú, thosaigh muid ag úsáid blocstóráil sonraí (Amazon Elastic Block Store) in ionad dioscaí bróicéirí áitiúla. Nuair a thagann ásc nua in ionad ásc bróicéir foirceanta, ceanglaíonn sé an méid EBS a bhí ag an gcás foirceanta agus tosaíonn sé ag teacht suas le teachtaireachtaí nua. Laghdaíonn an próiseas seo aga imréitigh riaráiste ó uaireanta go nóiméid mar ní gá don ásc nua a mhacasamhlú a thuilleadh ó stát folamh. Tríd is tríd, laghdaíonn saolréanna stórála agus bróicéirí ar leithligh go mór an tionchar a bhíonn ag athrú bróicéirí.

Chun an ráthaíocht seachadta sonraí a mhéadú tuilleadh, d’úsáideamar córas rianaithe teachtaireachta chun aon chaillteanas teachtaireachta a bhrath faoi dhálaí foircneacha (mar shampla, díshioncrónú clog i gceannaire na críochdheighilte).

Creat Próiseála Sruth

Tá ciseal próiseála Delta tógtha ar bharr ardán Netflix SPaaS, a sholáthraíonn comhtháthú Apache Flink le héiceachóras Netflix. Soláthraíonn an t-ardán comhéadan úsáideora a bhainistíonn imscaradh post Flink agus ornáidiú braislí Flink ar bharr ár n-ardán bainistíochta coimeádán Titus. Bainistíonn an comhéadan cumraíochtaí poist freisin agus ligeann sé d'úsáideoirí athruithe cumraíochta a dhéanamh go dinimiciúil gan a bheith orthu jabanna Flink a athchruinniú.

Soláthraíonn Delta creat próiseála srutha bunaithe ar Flink agus SPaaS a úsáideann bunaithe ar nótaí DSL (Teanga Sainiúil don Fhearann) chun sonraí teicniúla a theibí. Mar shampla, chun an chéim a shainiú ag a ndéanfar imeachtaí a shaibhriú trí ghlaoch ar sheirbhísí seachtracha, ní mór d'úsáideoirí an DSL seo a leanas a scríobh, agus cruthóidh an creat múnla bunaithe air, a fhorghníomhóidh Flink.

Delta: Ardán Sioncrónaithe agus Saibhrithe Sonraí
Fíor 3. Sampla de shaibhriú ar DSL in Delta

Ní hamháin go laghdaítear an cuar foghlama leis an gcreat próiseála, ach soláthraíonn sé freisin gnéithe próiseála srutha comónta ar nós dídhúbailt, schematization, agus solúbthacht agus athléimneacht chun fadhbanna oibríochta coitianta a réiteach.

Tá dhá phríomh-mhodúl i gCreat Próiseála Sruth Delta, an modúl DSL & API agus an modúl Runtime. Soláthraíonn an modúl DSL & API APIanna DSL agus UDF (Úsáideoir-Sainmhínithe-Feidhm) ionas gur féidir le húsáideoirí a loighic próiseála féin a scríobh (cosúil le scagadh nó claochluithe). Soláthraíonn an modúl Runtime forfheidhmiú parsálaí DSL a thógann léiriú inmheánach ar chéimeanna próiseála i samhlacha DAG. Déanann an chomhpháirt Forghníomhaithe léirmhíniú ar shamhlacha DAG chun na ráitis Flink iarbhír a thúsú agus ar deireadh thiar an feidhmchlár Flink a rith. Léirítear ailtireacht an chreata san fhigiúr seo a leanas.

Delta: Ardán Sioncrónaithe agus Saibhrithe Sonraí
Fíor 4. Ailtireacht Chreat Próiseála Sruth Delta

Tá roinnt buntáistí ag baint leis an gcur chuige seo:

  • Is féidir le húsáideoirí díriú ar a loighic gnó gan a bheith orthu dul i ngleic le sonraí Flink nó struchtúr SPaaS.
  • Is féidir optamú a dhéanamh ar bhealach atá trédhearcach d'úsáideoirí, agus is féidir earráidí a shocrú gan aon athruithe ar an gcód úsáideora (UDF) a éileamh.
  • Simplítear taithí iarratais Delta d'úsáideoirí toisc go soláthraíonn an t-ardán solúbthacht agus athléimneacht as an mbosca agus bailíonn sé éagsúlacht de mhéadracht mhionsonraithe is féidir a úsáid le haghaidh foláirimh.

Úsáid táirgeachta

Tá Delta i dtáirgeadh le breis agus bliain agus tá ról lárnach aige i go leor feidhmchlár Netflix Studio. Chabhraigh sí le foirne cásanna úsáide a chur i bhfeidhm mar innéacsú cuardaigh, stóráil sonraí, agus sreafaí oibre a bhí bunaithe ar imeachtaí. Anseo thíos tá forbhreathnú ar ailtireacht ardleibhéil ardán Delta.

Delta: Ardán Sioncrónaithe agus Saibhrithe Sonraí
Fíor 5. Ailtireacht ardleibhéil Delta.

Buíochas

Ba mhaith linn buíochas a ghabháil leis na daoine seo a leanas a bhí páirteach i gcruthú agus i bhforbairt Delta ag Netflix: Allen Wang, Charles Zhao, Jaebin Yoon, Josh Snyder, Kasturi Chatterjee, Mark Cho, Olof Johansson, Piyush Goyal, Prashanth Ramdas, Raghuram Onti Srinivasan, Sandeep Gupta , Steven Wu, Tharanga Gamaethige, Yun Wang agus Zhenzhong Xu.

Foinsí

  1. dev.mysql.com/doc/refman/5.7/ga/implicit-commit.html
  2. dev.mysql.com/doc/refman/5.7/ga/cannot-roll-back.html
  3. Martin Kleppmann, Alastair R. Beresford, Boerge Svingen: Próiseáil imeachtaí ar líne. Cumann. ACM 62(5): 43–49 (2019). DOI: doi.org/10.1145/3312527

Cláraigh le haghaidh webinar saor in aisce: “Uirlis Tógála Sonraí le haghaidh Stóráil Redshift Amazon.”

Foinse: will.com

Add a comment