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

Le dùil gun tèid sruth ùr a chuir air bhog aig an ìre Einnseanair dàta Tha sinn air eadar-theangachadh de stuth inntinneach ullachadh.

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

sealladh farsaing

Bruidhnidh sinn mu phàtran mòr-chòrdte leis am bi tagraidhean a’ cleachdadh grunn stòran dàta, far a bheil gach stòr air a chleachdadh airson a adhbharan fhèin, mar eisimpleir, gus cruth canonical dàta a stòradh (MySQL, msaa), a’ toirt seachad comasan sgrùdaidh adhartach (ElasticSearch, msaa).), caching (Memcached, msaa) agus feadhainn eile. Mar as trice, nuair a bhios tu a’ cleachdadh grunn stòran dàta, bidh aon dhiubh ag obair mar phrìomh stòr agus am fear eile mar stòran derivative. Is e an aon dhuilgheadas ciamar a nì thu sioncronadh air na stòran dàta sin.

Choimhead sinn air grunn phàtranan eadar-dhealaichte a dh’ fheuch ri fuasgladh fhaighinn air an duilgheadas a thaobh sioncronadh ioma stòr, leithid sgrìobhadh dùbailte, gnothaichean sgaoilte, msaa. Ach, tha cuingealachaidhean mòra aig na dòighean-obrach sin a thaobh cleachdadh fìor, earbsachd agus cumail suas. A bharrachd air sioncronadh dàta, feumaidh cuid de thagraidhean dàta a shaidhbhreachadh le bhith a’ gairm seirbheisean taobh a-muigh.

Chaidh Delta a leasachadh gus na duilgheadasan sin fhuasgladh. Aig a ’cheann thall tha Delta a’ toirt seachad àrd-ùrlar cunbhalach, air a stiùireadh le tachartas airson sioncronadh dàta agus beairteachadh.

Fuasglaidhean a tha ann mu thràth

Slighe a-steach dùbailte

Gus dà stòr dàta a chumail ann an sioncranachadh, faodaidh tu sgrìobhadh dùbailte a chleachdadh, a sgrìobhas gu aon stòr agus an uairsin a sgrìobhas chun fhear eile sa bhad às deidh sin. Faodar a’ chiad chlàradh a thoirt air ais agus faodar an dàrna fear a sguireadh ma dh’ fhailicheas a’ chiad fhear às deidh an àireamh de dh’ oidhirpean a bhith air a dhol seachad. Ach, dh’ fhaodadh an dà stòr dàta a dhol a-mach à sioncranachadh ma dh’ fhailicheas sgrìobhadh chun dàrna stòr. Mar as trice bidh an duilgheadas seo air a rèiteachadh le bhith a 'cruthachadh modh ath-bheothachaidh a dh' fhaodas dàta ath-ghluasad bho àm gu àm bhon chiad stòradh chun an dàrna fear, no dèan sin a-mhàin ma lorgar eadar-dhealachaidhean anns an dàta.

Duilgheadasan:

Is e obair shònraichte a th’ ann a bhith a’ coileanadh modh ath-bheothachaidh nach gabh a chleachdadh a-rithist. A bharrachd air an sin, tha dàta eadar àiteachan stòraidh fhathast gun sioncronachadh gus an tachair am modh ath-nuadhachaidh. Bidh am fuasgladh a’ fàs nas iom-fhillte ma thèid barrachd air dà stòr dàta a chleachdadh. Mu dheireadh, faodaidh am modh ath-nuadhachaidh luchd a chuir ris an stòr dàta tùsail.

Atharraich clàr clàr

Nuair a thachras atharrachaidhean air seata chlàran (leithid cuir a-steach, ùrachadh, agus cuir às do chlàr), thèid na clàran atharrachaidh a chur ris a’ chlàr log mar phàirt den aon ghnothach. Bidh snàithlean no pròiseas eile an-còmhnaidh ag iarraidh tachartasan bhon chlàr log agus gan sgrìobhadh gu aon stòr dàta no barrachd, ma tha sin riatanach, a ’toirt air falbh tachartasan bhon chlàr log às deidh don chlàr a bhith air a dhearbhadh leis a h-uile stòr.

Duilgheadasan:

Bu chòir am pàtran seo a bhith air a chur an gnìomh mar leabharlann, agus gu h-iomchaidh gun a bhith ag atharrachadh còd an tagraidh a tha ga chleachdadh. Ann an àrainneachd polyglot, bu chòir leabharlann den leithid a bhith ann an cànan sam bith a tha riatanach, ach tha e glè dhoirbh dèanamh cinnteach à cunbhalachd gnìomh agus giùlan thar chànanan.

Tha duilgheadas eile ann a bhith a’ faighinn atharrachaidhean sgeamaichean ann an siostaman nach eil a’ toirt taic do dh’ atharrachaidhean sgeamaichean gnìomh [1] [2], leithid MySQL. Mar sin, chan obraich am pàtran airson atharrachadh (mar eisimpleir, atharrachadh sgeama) agus a chlàradh gu malairt anns a’ chlàr log atharrachaidh an-còmhnaidh.

Gnìomhan Sgaoilte

Faodar gnothaichean sgaoilte a chleachdadh gus malairt a roinn thairis air grunn stòran dàta ioma-ghnèitheach gus am bi an gnìomhachd an dàrna cuid dealasach a thaobh a h-uile stòr dàta a thathar a’ cleachdadh, no gun a bhith dealasach a thaobh gin dhiubh.

Duilgheadasan:

Tha gnothaichean sgaoilte na dhuilgheadas mòr dha stòran dàta heterogeneous. Le nàdar, chan urrainn dhaibh a bhith an urra ris an t-seòrsaiche cumanta as ìsle de na siostaman a tha an sàs ann. Mar eisimpleir, bidh gnothaichean XA a’ cur bacadh air coileanadh ma dh’ fhailicheas am pròiseas tagraidh tron ​​ìre ullachaidh. A bharrachd air an sin, chan eil XA a’ toirt seachad lorg glasaidh no a’ toirt taic do sgeamaichean smachd concurrency dòchasach. A bharrachd air an sin, chan eil cuid de shiostaman mar ElasticSearch a’ toirt taic do XA no modal malairt ioma-ghnèitheach sam bith eile. Mar sin, tha dèanamh cinnteach à sgrìobhadh atomachd ann an grunn theicneòlasan stòraidh dàta fhathast na obair gu math dùbhlanach airson tagraidhean [3].

Delta

Chaidh Delta a dhealbhadh gus dèiligeadh ri crìochan fuasglaidhean sioncronaidh dàta a th’ ann agus cuideachd a’ comasachadh beairteas dàta air-iteig. B’ e ar n-amas na iom-fhillteachd sin uile a thoirt air falbh bho luchd-leasachaidh thagraidhean gus am b’ urrainn dhaibh fòcas iomlan a chuir air gnìomhachd gnìomhachais. An uairsin bidh sinn a’ toirt cunntas air “Movie Search”, an fhìor chùis cleachdaidh airson Netflix's Delta.

Bidh Netflix gu farsaing a’ cleachdadh ailtireachd microservice, agus mar as trice bidh gach microservice a ’frithealadh aon seòrsa dàta. Tha fiosrachadh bunaiteach mun fhilm ann am meanbh-sheirbheis ris an canar Seirbheis Movie, agus tha dàta co-cheangailte ris leithid fiosrachadh mu riochdairean, cleasaichean, luchd-reic, is mar sin air adhart air a riaghladh le grunn meanbh-sheirbheisean eile (is e sin Seirbheis Dealachaidh, Seirbheis Tàlant agus Seirbheis Luchd-reic).
Gu tric feumaidh luchd-cleachdaidh gnìomhachais aig Netflix Studios sgrùdadh a dhèanamh thairis air grunn shlatan-tomhais film, agus is e sin as coireach gu bheil e glè chudromach dhaibh a bhith comasach air sgrùdadh a dhèanamh air a h-uile dàta co-cheangailte ri film.

Ro Delta, dh'fheumadh an sgioba sgrùdaidh film dàta a tharraing bho iomadh meanbh-sheirbheisean mus clàraich iad dàta an fhilm. A bharrachd air an sin, bha aig an sgioba ri siostam a leasachadh a bheireadh ùrachadh bho àm gu àm air a’ chlàr sgrùdaidh le bhith ag iarraidh atharrachaidhean bho mhicro-sheirbheisean eile, eadhon ged nach biodh atharrachaidhean ann idir. Dh'fhàs an siostam seo gu luath iom-fhillte agus doirbh a chumail suas.

Delta: Àrd-ùrlar Sioncronadh Dàta agus Saibhreas
Figear 1. Siostam bhòtaidh gu Delta
Às deidh dha Delta a chleachdadh, chaidh an siostam a dhèanamh nas sìmplidhe gu siostam air a stiùireadh le tachartas mar a chithear san fhigear a leanas. Thèid tachartasan CDC (Atharrachadh-Data-Capture) a chuir gu cuspairean Keystone Kafka a’ cleachdadh Delta-Connector. Bidh tagradh Delta a chaidh a thogail a ’cleachdadh Frèam Pròiseas Sruth Delta (stèidhichte air Flink) a’ faighinn tachartasan CDC bho chuspair, gan beairteachadh le bhith a ’gairm meanbh-sheirbheisean eile, agus mu dheireadh a’ toirt seachad an dàta beairteach gu clàr sgrùdaidh ann an Elasticsearch. Bidh am pròiseas gu lèir a’ tachairt cha mhòr ann an àm fìor, is e sin, cho luath ‘s a thèid atharrachaidhean a dhèanamh air an taigh-bathair dàta, thèid clàran-amais sgrùdaidh ù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, bheir sinn cunntas air gnìomhachd an Delta-Connector, a bhios a ’ceangal ris an stòradh agus a’ foillseachadh tachartasan CDC chun ìre còmhdhail, a tha na bhun-structar tar-chuir dàta fìor-ùine a bhios a ’stiùireadh tachartasan CDC gu cuspairean Kafka. Agus aig a’ cheann thall, bruidhnidh sinn mu fhrèam giullachd sruthan Delta, as urrainn do luchd-leasachaidh thagraidhean a chleachdadh airson làimhseachadh dàta agus loidsig beairteachaidh.

CDC (Atharrachadh-Glacadh Dàta)

Tha sinn air seirbheis CDC a leasachadh ris an canar Delta-Connector, as urrainn atharrachaidhean dealasach a ghlacadh bhon stòr dàta ann an àm fìor agus an sgrìobhadh gu sruth. Tha atharrachaidhean fìor-ùine air an toirt bhon log malairt agus dumpan stòraidh. Bithear a’ cleachdadh dumps leis nach bi logaichean malairt mar as trice a’ stòradh eachdraidh nan atharrachaidhean gu lèir. Mar as trice bidh atharrachaidhean air an t-sreathachadh mar thachartasan Delta, agus mar sin chan fheum an neach a gheibh e dragh a ghabhail cò às a tha an t-atharrachadh a’ tighinn.

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

  • Comas dàta toraidh àbhaisteach a sgrìobhadh seachad air Kafka.
  • Comas cnapan làimhe a chuir an gnìomh aig àm sam bith airson a h-uile clàr, clàr sònraichte, no airson prìomh iuchraichean sònraichte.
  • Faodar dumps a thoirt air ais ann am pìosan, agus mar sin chan fheumar tòiseachadh a-rithist ma dh’ fhàilligeas.
  • Chan eil feum air glasan a chuir air bùird, rud a tha glè chudromach gus dèanamh cinnteach nach cuir an t-seirbheis againn bacadh air trafaic sgrìobhaidh stòr-dàta.
  • Cothrom àrd mar thoradh air suidheachaidhean gun fheum ann an Sònaichean Cothromachd AWS.

Tha sinn an-dràsta a’ toirt taic do MySQL agus Postgres, a’ gabhail a-steach cleachdadh air AWS RDS agus Aurora. Bidh sinn cuideachd a’ toirt taic do Cassandra (ioma-mhaighstir). Gheibh thu a-mach barrachd fiosrachaidh mu Delta-Connector an seo post blog.

Kafka agus an còmhdach còmhdhail

Tha còmhdach còmhdhail tachartais Delta air a thogail air seirbheis teachdaireachd an àrd-ùrlar Keystone.

Gu h-eachdraidheil, chaidh postadh air Netflix a mheudachadh airson ruigsinneachd seach fad-beatha (faic gu h-ìosal). artaigil roimhe). B’ e a’ mhalairt-malairt neo-chunbhalachd dàta broker a dh’ fhaodadh a bhith ann an grunn shuidheachaidhean iomaill. Mar eisimpleir, taghadh ceannard neòghlan an urra ris an neach a gheibh e tachartasan dùblaichte no caillte.

Le Delta, bha sinn ag iarraidh gealltanasan seasmhachd nas làidire gus dèanamh cinnteach gun tèid tachartasan CDC a lìbhrigeadh gu stòran a thàinig às. Airson an adhbhair seo, mhol sinn cruinneachadh Kafka a chaidh a dhealbhadh gu sònraichte mar rud den chiad ìre. Faodaidh tu coimhead air cuid de shuidheachaidhean broker sa chlàr gu h-ìosal:

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

Ann an cruinneachaidhean Keystone Kafka, taghadh ceannard neòghlan mar as trice air a ghabhail a-steach gus dèanamh cinnteach gum bi am foillsichear ruigsinneach. Dh’ fhaodadh seo call teachdaireachd a chall ma thèid mac-samhail neo-shioncronach a thaghadh mar stiùiriche. Airson cruinneachadh ùr Kafka le ruigsinneachd àrd, an roghainn taghadh ceannard neòghlan air a chuir dheth gus casg a chuir air call teachdaireachd.

Mheudaich sinn cuideachd factar mac-samhail bho 2 gu 3 agus mac-samhail insync as ìsle 1 gu 2. Feumaidh foillsichearan a bhios a’ sgrìobhadh chun bhuidheann seo fiosan bho chàch, a’ dèanamh cinnteach gu bheil 2 a-mach à 3 mac-samhail aig a bheil na teachdaireachdan as ùire a chuir am foillsichear.

Nuair a thig eisimpleir broker gu crìch, bidh eisimpleir ùr a’ dol an àite an t-seann fhear. Ach, feumaidh am broker ùr grèim fhaighinn air na mac-samhail gun shioncronachadh, a dh’ fhaodadh grunn uairean a thìde a thoirt. Gus an ùine ath-bheothachaidh airson an t-suidheachaidh seo a lughdachadh, thòisich sinn a’ cleachdadh stòradh dàta bloc (Amazon Elastic Block Store) an àite diosgan broker ionadail. Nuair a thig eisimpleir ùr an àite eisimpleir broker a chaidh a thoirt gu crìch, bidh e a’ ceangal na h-ìre EBS a bha aig an t-suidheachadh crìochnachaidh agus a’ tòiseachadh a’ faighinn suas ri teachdaireachdan ùra. Bidh am pròiseas seo a’ lughdachadh ùine fuasglaidh cùl-fhiosrachaidh bho uairean gu mionaidean leis nach fheum an eisimpleir ùr ath-riochdachadh tuilleadh bho staid falamh. Gu h-iomlan, tha stòradh air leth agus cuairtean-beatha broker gu mòr a’ lughdachadh buaidh atharrachadh broker.

Gus an gealltanas lìbhrigidh dàta àrdachadh tuilleadh, chleachd sinn siostam rianachd teachdaireachd gus call teachdaireachd sam bith a lorg fo chumhachan fìor (mar eisimpleir, dì-shioncronachadh cloc ann an stiùiriche an sgaradh).

Frèam Pròiseas Sruth

Tha còmhdach giollachd Delta air a thogail air mullach àrd-ùrlar Netflix SPaaS, a bheir seachad amalachadh Apache Flink le eag-shiostam Netflix. Tha an àrd-ùrlar a’ toirt seachad eadar-aghaidh cleachdaiche a bhios a’ riaghladh cleachdadh obraichean Flink agus orcastra cruinneachaidhean Flink a bharrachd air an àrd-ùrlar riaghlaidh soithichean Titus againn. Bidh an eadar-aghaidh cuideachd a’ riaghladh rèiteachadh obrach agus a’ leigeil le luchd-cleachdaidh atharrachaidhean rèiteachaidh a dhèanamh gu dinamach gun a bhith aca ri obraichean Flink ath-chruinneachadh.

Tha Delta a 'toirt seachad frèam giollachd sruthan stèidhichte air Flink agus SPaaS a bhios a' cleachdadh stèidhichte air notaichean DSL (Cànan Sònraichte Domain) gus mion-fhiosrachadh teicnigeach a tharraing. Mar eisimpleir, gus an ceum aig an tèid tachartasan a shaidhbhreachadh le bhith a’ gairm sheirbheisean taobh a-muigh a mhìneachadh, feumaidh luchd-cleachdaidh an DSL a leanas a sgrìobhadh, agus cruthaichidh am frèam modal stèidhichte air, a thèid a chuir gu bàs le Flink.

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

Chan e a-mhàin gu bheil am frèam giollachd a’ lughdachadh an lùb ionnsachaidh, ach tha e cuideachd a’ toirt seachad feartan giollachd sruth cumanta leithid deduplication, schematization, agus sùbailteachd agus tapachd gus fuasgladh fhaighinn air duilgheadasan obrachaidh cumanta.

Tha Frèam Pròiseas 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 aca fhèin a sgrìobhadh (leithid sìoladh no cruth-atharrachaidhean). Tha am modal Runtime a’ toirt seachad buileachadh parser DSL a thogas riochdachadh a-staigh de cheumannan giullachd ann am modalan DAG. Bidh am pàirt Cur gu bàs a’ mìneachadh na modalan DAG gus na fìor aithrisean Flink a thòiseachadh agus aig a ’cheann thall ruith an tagradh Flink. Tha ailtireachd an fhrèam air a nochdadh anns an fhigear a leanas.

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

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

  • Faodaidh luchd-cleachdaidh fòcas a chuir air an loidsig gnìomhachais aca gun a bhith aca ri sgrùdadh a dhèanamh air mion-fhiosrachadh Flink no structar SPaaS.
  • Faodar optimization a dhèanamh ann an dòigh a tha follaiseach do luchd-cleachdaidh, agus faodar mearachdan a cheartachadh gun a bhith feumach air atharrachaidhean sam bith air còd an neach-cleachdaidh (UDF).
  • Tha eòlas tagraidh Delta air a dhèanamh nas sìmplidhe do luchd-cleachdaidh leis gu bheil an àrd-ùrlar a ’toirt seachad sùbailteachd agus sùbailteachd a-mach às a’ bhogsa agus a ’tional grunn mheatairean mionaideach a ghabhas cleachdadh airson rabhaidhean.

Cleachdadh cinneasachaidh

Tha Delta air a bhith ann an riochdachadh airson còrr air bliadhna agus tha prìomh àite aige ann an iomadh tagradh Netflix Studio. Chuidich i sgiobaidhean le bhith a’ cur an gnìomh cùisean cleachdaidh leithid clàr-amais sgrùdaidh, stòradh dàta, agus sruthan-obrach air an stiùireadh le tachartas. 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 dha na daoine a leanas a bha an sàs ann an cruthachadh agus 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/ga/implicit-commit.html
  2. dev.mysql.com/doc/refman/5.7/en/cannot-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 a-steach airson webinar saor an asgaidh: “Inneal Togail Dàta airson Stòradh Redshift Amazon.”

Source: www.habr.com

Cuir beachd ann