Delta: Àrd-ùrlar Sioncronadh Dàta agus Saibhreas

Mar ullachadh airson sruth cĂšrsa Ăšr a chur air bhog Einnseanair dĂ ta Tha sinn air eadar-theangachadh de stuth inntinneach ullachadh.

Delta: Àrd-ùrlar Sioncronadh Dàta agus Saibhreas

sealladh farsaing

Bruidhnidh sinn air pàtran gu math cumanta anns am bi aplacaidean a’ cleachdadh iomadh stòr dàta, gach fear a’ frithealadh adhbhar sònraichte, leithid stòradh dàta canònach (MySQL, msaa.), a’ toirt seachad comasan rannsachaidh adhartach (ElasticSearch, msaa.), tasgadh (Memcached, msaa.), agus barrachd. Mar as trice, nuair a thathar a’ cleachdadh iomadh stòr dàta, bidh aon ag obair mar a’ phrìomh stòr, agus bidh na feadhainn eile ag obair mar stòran tùsail. Is e an aon dùbhlan mar a nì thu sioncronachadh air na stòran dàta seo.

Tha sinn air grunn phàtranan eadar-dhealaichte a sgrùdadh a dh’fheuch ri fuasgladh fhaighinn air duilgheadas sioncronachadh iomadh inneal stòraidh, leithid sgrìobhadh dùbailte gu dàta, gnothaichean sgaoilte, agus mar sin air adhart. Ach, tha crìochan mòra aig na dòighean-obrach sin a thaobh cleachdadh san t-saoghal fhìor, earbsachd agus cumail suas. A bharrachd air sioncronachadh dàta, feumaidh cuid de thagraidhean dàta a neartachadh le bhith a’ gairm sheirbheisean taobh a-muigh.

Chaidh Delta a leasachadh gus dèiligeadh ris na cùisean seo. Mu dheireadh, tha Delta a’ toirt seachad àrd-ùrlar cunbhalach, stèidhichte air tachartasan, airson sioncronachadh dàta agus beairteachadh.

Fuasglaidhean a th’ ann mar-thà

Inntrigeadh dĂšbailte

Gus dà stòr dàta a shioncronachadh, faodaidh tu sgrìobhadh dùbailte a chleachdadh, a bhios a’ sgrìobhadh gu aon stòr agus an uairsin a’ sgrìobhadh sa bhad chun an stòr eile. Faodar a’ chiad sgrìobhadh ath-fheuchainn, agus faodar an dàrna fear a stad ma dh’fhailicheas air a’ chiad fhear às deidh dhut an àireamh oidhirpean a chrìochnachadh. Ach, dh’ fhaodadh an dà stòr dàta a bhith a-mach à sioncronachadh ma dh’fhailicheas sgrìobhadh chun dàrna stòr. Mar as trice, thèid an duilgheadas seo fhuasgladh le bhith a’ cruthachadh modh-obrach ath-bheothachaidh as urrainn dàta ath-ghluasad bho àm gu àm bhon chiad stòr chun an dàrna fear, no dìreach sin a dhèanamh ma lorgar eadar-dhealachaidhean.

Duilgheadasan:

’S e obair shònraichte a th’ ann am modh-obrach ath-bheothachaidh nach gabh ath-chleachdadh. A bharrachd air sin, bidh dàta eadar àiteachan stòraidh a-mach à sioncronachadh gus an tèid am modh-obrach ath-bheothachaidh a chrìochnachadh. Bidh am fuasgladh nas iom-fhillte ma thèid barrachd air dà àite stòraidh dàta a chleachdadh. Mu dheireadh, faodaidh am modh-obrach ath-bheothachaidh cuideam a chur air an stòr dàta tùsail.

ClĂ r loga atharrachaidh

Nuair a thachras atharrachaidhean ann an seata de chlàran (leithid clàr a chur a-steach, ùrachadh no a dhubhadh às), thèid na clàran atharrachaidh a chur ris a’ chlàr loga mar phàirt den aon ghnothach. Bidh snàthainn no pròiseas eile a’ cur ceist leantainneach air a’ chlàr loga agus gan sgrìobhadh gu aon stòr dàta no barrachd, agus faodaidh tu na tachartasan a thoirt air falbh bhon chlàr loga às deidh dha na stòran uile na sgrìobhaidhean a dhearbhadh.

Duilgheadasan:

Bu chòir am pàtran seo a chur an gnÏomh mar leabharlann, gu h-iomchaidh gun atharrachadh a dhèanamh air còd an aplacaid a bhios ga chleachdadh. Ann an àrainneachd ioma-chànanach, bu chòir cur an gnÏomh leabharlainn mar sin a bhith ann an cànan sam bith a tha a dhÏth, ach tha e gu math dÚbhlanach dèanamh cinnteach à cunbhalachd ghnÏomhan agus giÚlain thar chànanan.

Is e cùis eile a th’ ann a bhith a’ faighinn atharrachaidhean sgeama ann an siostaman nach eil a’ toirt taic do atharrachaidhean sgeama malairteach [1][2], leithid MySQL. Mar sin, cha bhith am pàtran airson atharrachadh a dhèanamh (mar eisimpleir, atharrachadh sgeama) agus a sgrìobhadh gu malairteach chun chlàr loga atharrachaidhean an-còmhnaidh ag obair.

GnĂŹomhan Sgaoilte

Faodar gnothaichean sgaoilte a chleachdadh gus gnothach a roinn thar iomadh stòr dàta eadar-dhealaichte gus am bi an gnÏomhachd air a gealltainn anns na stòran uile a tha an sàs no nach eil air a ghealltainn ann an gin dhiubh.

Duilgheadasan:

Tha gnothaichean sgaoilte a’ cur dùbhlan mòr air stòran dàta eadar-dhealaichte. Leis an nàdar fhèin, chan urrainn dhaibh ach a bhith an urra ris an t-seòrsaichear cumanta as ìsle de na siostaman a tha a’ gabhail pàirt. Mar eisimpleir, bidh gnothaichean XA a’ cur bacadh air cur an gnìomh ma dh’ fhailicheas pròiseas tagraidh rè na h-ìre ullachaidh. A bharrachd air an sin, chan eil XA a’ toirt seachad lorg bacadh no a’ toirt taic do sgeamaichean smachd co-aimsireil dòchasach. A bharrachd air an sin, chan eil cuid de shiostaman mar ElasticSearch a’ toirt taic do XA no modail gnothaichean eadar-dhealaichte sam bith eile. Mar sin, tha dèanamh cinnteach gu bheil sgrìobhaidh atamach thar diofar theicneòlasan stòraidh dàta fhathast na dhùbhlan mòr dha tagraidhean [3].

Delta

Chaidh Delta a dhealbhadh gus dèiligeadh ri crìochan fhuasglaidhean sioncronachaidh dàta a tha ann mar-thà agus gus beairteachadh dàta a chomasachadh air-loidhne. B’ e ar n-amas na duilgheadasan seo uile a thoirt air falbh bho luchd-leasachaidh aplacaidean, a’ leigeil leotha fòcas a chuir gu tur air gnìomhachd gnìomhachais a chuir an gnìomh. Gu h-ìosal, mìnichidh sinn “Lorg Movie,” cùis cleachdaidh fhìor airson Delta bho Netflix.

Bidh Netflix a’ cleachdadh ailtireachd microservice gu farsaing, agus mar as trice bidh gach microservice a’ riaghladh aon seòrsa dàta. Tha fiosrachadh bunaiteach mu fhilmichean ann am microservice ris an canar Seirbheis Fhilmichean, agus tha dàta co-cheangailte, leithid fiosrachadh mu riochdairean, cleasaichean, luchd-reic, agus mar sin air adhart, air a riaghladh le grunn microservices eile (is iad sin, Seirbheis Cùmhnantan, Seirbheis Thàlant, agus Seirbheis Reiceadair).
Feumaidh luchd-cleachdaidh gnÏomhachais aig Netflix Studios gu tric filmichean a lorg a rèir diofar shlatan-tomhais, agus mar sin tha e deatamach dhaibh a bhith comasach air sgrÚdadh a dhèanamh air feadh an dàta gu lèir co-cheangailte ri filmichean.

Mus tàinig Delta, b’ fheudar don sgioba rannsachaidh fhilmichean dàta fhaighinn bho ghrunn mhicro-sheirbheisean mus deach dàta film a chlàr-amais. A bharrachd air an sin, b’ fheudar don sgioba siostam a leasachadh a bhiodh ag ùrachadh clàr-amais an rannsachaidh bho àm gu àm le bhith a’ faighneachd do mhicro-sheirbheisean eile airson atharrachaidhean, eadhon ged nach deach atharrachaidhean sam bith a dhèanamh. Gu luath dh’fhàs an siostam seo iom-fhillte agus duilich a chumail suas.

Delta: Àrd-ùrlar Sioncronadh Dàta agus Saibhreas
Figear 1. Siostam bhòtaidh ron Delta
Às dèidh Delta a chur an gnìomh, chaidh an siostam a dhèanamh nas sìmplidhe gu siostam stèidhichte air tachartasan, mar a chithear san fhigear a leanas. Thèid tachartasan Atharrachadh-Glacadh-Dàta (CDC) a chur gu cuspairean Keystone Kafka a’ cleachdadh an Delta Connector. Bidh tagradh Delta, air a thogail a’ cleachdadh Frèam-obrach Giullachd Sruth Delta (stèidhichte air Flink), a’ faighinn tachartasan CDC bhon chuspair, gan neartachadh le bhith a’ gairm microservices eile, agus mu dheireadh a’ putadh an dàta neartaichte chun chlàr-amais rannsachaidh ann an Elasticsearch. Bidh am pròiseas gu lèir a’ tachairt cha mhòr ann an àm fìor, a’ ciallachadh cho luath ‘s a thèid atharrachaidhean a ghealltainn don taigh-tasgaidh dàta, thèid na clàran-amais rannsachaidh ùrachadh.

Delta: Àrd-ùrlar Sioncronadh Dàta agus Saibhreas
Figear 2. Pìob-loidhne dàta a’ cleachdadh Delta
Anns na h-earrannan a leanas, mìnichidh sinn an Delta Connector, a cheanglas ris an stòradh agus a dh’fhoillsicheas tachartasan CDC chun an ìre còmhdhail, is e sin am bun-structar gluasaid dàta fìor-ùine a bhios a’ stiùireadh tachartasan CDC gu cuspairean Kafka. Mu dheireadh, bruidhnidh sinn air frèam-obrach giullachd sruth Delta, as urrainn do luchd-leasachaidh aplacaidean a chleachdadh airson giullachd dàta agus loidsig beairteachaidh.

CDC (Atharrachadh-Glacadh-DĂ ta)

Leasaich sinn seirbheis CDC ris an canar Delta-Connector, a dh’ fhaodas atharrachaidhean dealasach a ghlacadh bho thaigh-tasgaidh dàta ann an àm fìor agus an sgrìobhadh gu sruth. Thèid atharrachaidhean fìor-ùine a thoirt bhon loga malairt agus bho na dumpan taigh-tasgaidh. Bithear a’ cleachdadh dumpan leis nach bi logaichean malairt mar as trice a’ stòradh eachdraidh iomlan an atharrachaidh. Mar as trice bidh atharrachaidhean air an sreathachadh mar thachartasan Delta, agus mar sin chan fheum an neach a gheibh e a bhith draghail mu cò às a thàinig an t-atharrachadh.

Tha Delta-Connector a’ toirt taic do ghrunn fheartan a bharrachd, leithid:

  • Comas sgrĂŹobhadh gu dĂ ta toraidh gnĂ thaichte taobh a-muigh Kafka.
  • Comas dumps lĂ imhe a ghnĂŹomhachadh aig Ă m sam bith airson a h-uile clĂ r, clĂ r sònraichte, no airson prĂŹomh iuchraichean sònraichte.
  • Faodar cruinneachadh ann am pĂŹosan beaga, agus mar sin chan eil feum air tòiseachadh bhon fhĂŹor thoiseach ma thachras tubaist.
  • Chan eil feum air glasan a chur air clĂ ran, rud a tha glè chudromach gus dèanamh cinnteach nach tèid trafaic sgrĂŹobhaidh stòr-dĂ ta a bhacadh leis an t-seirbheis againn a-riamh.
  • Ruigsinneachd Ă rd le taing do eisimpleirean cĂšl-taic ann an Sònaichean Ruigsinneachd AWS.

Tha sinn an-dràsta a’ toirt taic do MySQL agus Postgres, a’ gabhail a-steach cleachdaidhean air AWS RDS agus Aurora. Tha sinn cuideachd a’ toirt taic do Cassandra (multi-master). Faodaidh tu barrachd ionnsachadh mu Delta-Connector san artaigil seo. post blog.

Kafka agus an Ïre còmhdhail

Tha sreath còmhdhail thachartasan Delta air a thogail air seirbheis teachdaireachdan an àrd-Úrlair. Keystone.

Gu h-eachdraidheil, chaidh postadh Netflix a bharrrachadh airson ruigsinneachd seach fad-beatha (faic artaigil roimhe). B’ e an co-rèiteachadh an neo-chunbhalachd a dh’ fhaodadh a bhith ann an dàta brocairean ann an diofar shuidheachaidhean crìche. Mar eisimpleir, taghadh ceannard neo-ghlan tha e an urra ris an neach a gheibh e tachartasan a dhùblachadh no a chall.

Le Delta, bha sinn ag iarraidh geallaidhean seasmhachd nas làidire gus dèanamh cinnteach à lìbhrigeadh tachartais CDC gu stòradh tùsail. Gus seo a choileanadh, thairg sinn cruinneachadh Kafka a chaidh a dhealbhadh gu sònraichte mar shaoranach den chiad ìre. Chì thu cuid de roghainnean a’ bhrocair san chlàr gu h-ìosal:

Delta: Àrd-ùrlar Sioncronadh Dàta agus Saibhreas

Ann an cruinneachaidhean Keystone Kafka, taghadh ceannard neo-ghlan Mar as trice air a chomasachadh gus dèanamh cinnteach gu bheil foillsichear ri fhaighinn. Faodaidh seo leantainn gu call teachdaireachd ma thèid leth-bhreac nach eil sioncronaichte a thaghadh mar an stiÚiriche. Airson cruinneachadh Kafka Úr a tha ri fhaighinn gu mòr, am paramadair taghadh ceannard neo-ghlan air a dhÏ-chomasachadh gus casg a chur air call teachdaireachd.

Mheudaich sinn cuideachd factar ath-riochdachadh bho 2 gu 3 agus leth-bhreacan neo-shioncronaichte as ìsle bho 1 gu 2. Feumaidh foillsichearan a tha a’ sgrìobhadh chun a’ chnuasaich seo dearbhaidhean bho na feadhainn eile uile, a’ dèanamh cinnteach gu bheil na teachdaireachdan as ùire a chuir am foillsichear a-mach ann an 2 de na 3 leth-bhreacan.

Nuair a thig crìoch air eisimpleir brocair, bidh eisimpleir ùr a’ dol an àite an tè a bh’ ann roimhe. Ach, feumaidh am brocair ùr grèim fhaighinn air leth-bhreacan nach eil sioncronaichte, agus faodaidh seo grunn uairean a thìde a thoirt. Gus an ùine ath-bheothachaidh a lughdachadh airson an t-suidheachaidh seo, thòisich sinn a’ cleachdadh stòradh bloc (Amazon Elastic Block Store) an àite diosgan ionadail nam brocairean. Nuair a thig eisimpleir ùr an àite eisimpleir a’ bhrocair a chaidh a thoirt gu crìch, bidh e a’ ceangal an tomhas-lìonaidh EBS a bhuineadh don eisimpleir a chaidh a thoirt gu crìch agus a’ tòiseachadh a’ glacadh suas le teachdaireachdan ùra. Tha am pròiseas seo a’ lughdachadh na h-ùine airson grèim fhaighinn air ais bho grunn uairean a thìde gu beagan mhionaidean, leis nach fheum an eisimpleir ùr ath-riochdachadh bho staid falamh tuilleadh. Gu h-iomlan, tha na cearcallan-beatha fa leth den stòradh agus den bhrocair a’ lughdachadh buaidh atharrachadh brocair gu mòr.

Gus gealltanas lĂŹbhrigeadh dĂ ta a mheudachadh tuilleadh, chleachd sinn siostam tracadh teachdaireachdan gus call teachdaireachdan sam bith a lorg fo chumhachan anabarrach (m.e. dĂŹ-shioncronachadh cloca ann an stiĂširiche na roinne).

Frèam-obrach Giullachd Sruth

Tha sreath giullachd Delta air a thogail air àrd-ùrlar Netflix SPaaS, a bhios ag amalachadh Apache Flink le eag-shiostam Netflix. Tha an t-àrd-ùrlar a’ toirt seachad eadar-aghaidh cleachdaiche a bhios a’ riaghladh cleachdadh obraichean Flink agus co-òrdanachadh cruinneachadh Flink air mullach an àrd-ùrlar riaghlaidh container Titus againn. Bidh an eadar-aghaidh cuideachd a’ riaghladh rèiteachaidhean obraichean agus a’ leigeil le luchd-cleachdaidh atharrachaidhean rèiteachaidh a dhèanamh gu dinamach gun obraichean Flink ath-chruinneachadh.

Tha Delta a’ toirt seachad frèam-obrach giullachd sruthan stèidhichte air Flink agus SPaaS a bhios a’ cleachdadh stèidhichte air notaichean Bithear a’ cleachdadh DSL (Cànan Sònraichte Àrainn) gus mion-fhiosrachadh teicnigeach a thoirt a-mach. Mar eisimpleir, gus an ceum a mhìneachadh leis am bi tachartasan air an neartachadh le bhith a’ gairm sheirbheisean taobh a-muigh, feumaidh luchd-cleachdaidh an DSL a leanas a sgrìobhadh, agus cruthaichidh am frèam-obrach modail stèidhichte air, a thèid a chur an gnìomh le Flink.

Delta: Àrd-ùrlar Sioncronadh Dàta agus Saibhreas
Figear 3. Eisimpleir de bheairteachadh air DSL ann an Delta

Chan e a-mhàin gu bheil am frèam-obrach giullachd a’ lughdachadh a’ lùb ionnsachaidh, ach tha e cuideachd a’ toirt seachad feartan giullachd sruth cumanta leithid dì-dhùblachadh, sgeamatachadh, a bharrachd air sùbailteachd agus fulangas locht gus fuasgladh fhaighinn air duilgheadasan obrachaidh cumanta.

Tha Frèam-obrach Giullachd Sruth Delta air a dhèanamh suas de dhà phrìomh mhodal: am modal DSL & API agus am modal Runtime. Tha am modal DSL & API a’ toirt seachad APIan DSL agus UDF (User-Defined-Function) gus an urrainn do luchd-cleachdaidh an loidsig giullachd fhèin a sgrìobhadh (leithid sìoladh no cruth-atharrachaidhean). Bidh am modal Runtime a’ cur an gnìomh am parser DSL, a bhios a’ togail riochdachadh a-staigh de cheumannan giullachd ann am modalan DAG. Bidh am pàirt Execution a’ mìneachadh modalan DAG gus na gnìomhaichean Flink fhèin a thòiseachadh agus mu dheireadh an tagradh Flink a ruith. Tha ailtireachd an fhrèam-obrach air a mhìneachadh san fhigear a leanas.

Delta: Àrd-ùrlar Sioncronadh Dàta agus Saibhreas
Figear 4. Ailtireachd Frèam-obrach Giullachd Sruth Delta

Tha grunn bhuannachdan aig an dòigh-obrach seo:

  • Faodaidh luchd-cleachdaidh fòcas a chur air loidsig a’ ghnĂŹomhachais aca gun a bhith a’ dol a-steach do mhion-fhiosrachadh Flink no structar SPaaS.
  • Faodar an leasachadh a dhèanamh ann an dòigh fhollaiseach do luchd-cleachdaidh, agus faodar mearachdan a chĂ radh gun a bhith feumach air atharrachaidhean sam bith air còd an neach-cleachdaidh (UDF).
  • Tha aplacaidean Delta air an dèanamh nas sĂŹmplidhe do luchd-cleachdaidh leis gu bheil an Ă rd-Ăšrlar a’ toirt seachad sĂšbailteachd agus seasmhachd dĂŹreach Ă s a’ bhogsa agus a’ cruinneachadh pailteas de mheatrachdan mionaideach a ghabhas cleachdadh airson rabhaidhean.

Cleachdadh cinneasachaidh

Tha Delta air a bhith ag obair ann an riochdachadh airson còrr is bliadhna agus tha pàirt chudromach aige ann am mòran aplacaidean Netflix Studio. Tha e air sgiobaidhean a chuideachadh le bhith a’ cur an gnìomh cùisean cleachdaidh leithid clàr-amais rannsachaidh, stòradh dàta, agus sruthan-obrach stèidhichte air tachartasan. Gu h-ìosal tha sealladh farsaing air ailtireachd àrd-ìre àrd-ùrlar Delta.

Delta: Àrd-ùrlar Sioncronadh Dàta agus Saibhreas
Figear 5. Ailtireachd Ă rd-ĂŹre Delta.

Buidheachas

Bu mhath leinn taing a thoirt do na daoine a leanas a bha an sĂ s ann an cruthachadh is leasachadh Delta aig 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.

Stòran

  1. dev.mysql.com/doc/refman/5.7/en/implicit-commit.html
  2. dev.mysql.com/doc/refman/5.7/en/chan urrainnear-roll-back.html
  3. Màrtainn Kleppmann, Alastair R. Beresford, Boerge Svingen: Giullachd thachartasan air-loidhne. Comunn. ACM 62(5): 43–49 (2019). DOI: doi.org/10.1145/3312527

Clàraich airson co-labhairt-lìn an-asgaidh“Inneal Togail Dàta airson Stòradh Amazon Redshift.”

Source: www.habr.com