Ailtireachd agus comasan Grid Dàta Tarantool

Ailtireachd agus comasan Grid Dàta Tarantool

Ann an 2017, choisinn sinn farpais gus cridhe gnìomhachd gnìomhachas tasgaidh Alfa-Bank a leasachadh agus thòisich sinn ag obair (aig HighLoad ++ 2018 le aithisg air cridhe a’ ghnìomhachais tasgaidh labhair Vladimir Drynkin, ceannard prìomh ghnìomhachd gnìomhachas tasgaidh Alfa Bank). Bha còir aig an t-siostam seo dàta malairt a chruinneachadh bho dhiofar thùsan ann an diofar chruthan, an dàta a thoirt a-steach gu cruth aonaichte, a stòradh agus cothrom a thoirt dha.

Rè a 'phròiseas leasachaidh, thàinig an siostam air adhart agus fhuair e comas-gnìomh, agus aig àm air choreigin thuig sinn gu robh sinn a' criostal rudeigin fada a bharrachd air dìreach bathar-bog tagraidh a chaidh a chruthachadh gus fuasgladh fhaighinn air raon de ghnìomhan a bha air am mìneachadh gu cruaidh: shoirbhich leinn. siostam airson tagraidhean sgaoilte a thogail le stòradh leantainneach. Bha an t-eòlas a fhuair sinn na bhunait airson toradh ùr - Grid dàta Tarantool (TDG).

Tha mi airson bruidhinn mu ailtireachd TDG agus na fuasglaidhean ris an tàinig sinn tron ​​​​phròiseas leasachaidh, do thoirt a-steach don phrìomh ghnìomhachd agus sealltainn mar as urrainn don toradh againn a bhith na bhunait airson fuasglaidhean coileanta a thogail.

A thaobh ailtireachd, roinn sinn an siostam gu bhith air leth ròla, agus tha uallach air gach fear dhiubh fuasgladh fhaighinn air raon sònraichte de dhuilgheadasan. Bidh aon eisimpleir de thagradh ruith a’ buileachadh aon sheòrsa dreuchd no barrachd. Faodaidh grunn dhleastanasan den aon sheòrsa a bhith ann am buidheann:

Ailtireachd agus comasan Grid Dàta Tarantool

ceanglaiche

Tha uallach air Connector airson conaltradh leis an t-saoghal a-muigh; is e an obair aige gabhail ris an iarrtas, a pharsadh, agus ma shoirbhicheas leis, an uairsin cuir an dàta airson a ghiullachd chun phròiseasar cuir a-steach. Bidh sinn a’ toirt taic do chruthan HTTP, SOAP, Kafka, FIX. Leigidh an ailtireachd leat dìreach taic a chuir ri cruthan ùra, le taic airson IBM MQ a’ tighinn a dh’ aithghearr. Ma dh’ fhàillig parsadh an iarrtais, tillidh an ceanglaiche mearachd; air dhòigh eile, freagraidh e gun deach an t-iarrtas a phròiseasadh gu soirbheachail, eadhon ged a thachair mearachd fhad ‘s a bha e ga ghiullachd. Chaidh seo a dhèanamh gu sònraichte gus obrachadh le siostaman aig nach eil fios ciamar a nì iad ath-iarrtasan - no, air an làimh eile, dèan e ro sheasmhach. Gus nach tèid dàta a chall, thathas a 'cleachdadh ciudha càraidh: bidh an nì a' faighinn a-steach an toiseach agus a-mhàin às deidh giollachd soirbheachail a thoirt air falbh bhuaithe. Gheibh an rianaire rabhaidhean mu nithean a tha air fhàgail sa chiudha càraidh, agus an dèidh cur às do mhearachd bathar-bog no fàilligeadh bathar-cruaidh, feuch ris a-rithist.

Pròiseasar cuir a-steach

Bidh am pròiseasar cuir a-steach a’ seòrsachadh an dàta a fhuaireadh a rèir feartan caractar agus a’ gairm pròiseasairean iomchaidh. Is e còd Lua a th’ ann an luchd-làimhseachaidh a bhios a’ ruith ann am bogsa gainmhich, agus mar sin chan urrainn dhaibh buaidh a thoirt air gnìomhachd an t-siostaim. Aig an ìre seo, faodar an dàta a lughdachadh chun fhoirm a tha a dhìth, agus, ma tha sin riatanach, faodar àireamh neo-riaghailteach de ghnìomhan a chuir air bhog as urrainn an loidsig riatanach a bhuileachadh. Mar eisimpleir, anns an toradh MDM (Master Data Management) a chaidh a thogail air Tarantool Data Grid, nuair a chuireas tu cleachdaiche ùr ris, gus nach cuir sinn dàil air giullachd an iarrtais, bidh sinn a’ cur air bhog cruthachadh clàr òir mar ghnìomh air leth. Tha am bogsa gainmhich a’ toirt taic do dh’ iarrtasan airson dàta a leughadh, atharrachadh agus a chur ris, a’ leigeil leat gnìomh air choireigin a choileanadh air gach dreuchd den t-seòrsa stòraidh agus cruinneachadh an toraidh (mapa/lùghdaich).

Faodar luchd-làimhseachaidh a mhìneachadh ann am faidhlichean:

sum.lua

local x, y = unpack(...)
return x + y

Agus an uairsin, air ainmeachadh anns an rèiteachadh:

functions:
  sum: { __file: sum.lua }

Carson Lua? Is e cànan gu math sìmplidh a th’ ann an Lua. Stèidhichte air an eòlas againn, uair no dhà às deidh dhaibh eòlas fhaighinn air, bidh daoine a’ tòiseachadh a ’sgrìobhadh còd a dh’ fhuasglas an duilgheadas aca. Agus chan e a-mhàin luchd-leasachaidh proifeasanta a tha seo, ach, mar eisimpleir, luchd-anailis. A bharrachd air an sin, le taing don compiler jit, bidh Lua a ’ruith gu math luath.

storage

Bidh stòradh a’ stòradh dàta leantainneach. Mus tèid a shàbhaladh, thèid dàta a dhearbhadh mu choinneamh sgeama an dàta. Airson cunntas a thoirt air a’ chuairt bidh sinn a’ cleachdadh cruth leudaichte Apache Avro. Eisimpleir:

{
    "name": "User",
    "type": "record",
    "logicalType": "Aggregate",
    "fields": [ 
        { "name": "id", "type": "string"}, 
        {"name": "first_name", "type": "string"}, 
        {"name": "last_name", "type": "string"} 
    ], 
    "indexes": ["id"] 
}

Stèidhichte air an tuairisgeul seo, thèid DDL (Cànan Mìneachadh Dàta) a chruthachadh gu fèin-ghluasadach airson Tarantula DBMS agus GrafQL sgeama airson cothrom air dàta.

Thathas a’ toirt taic do mhac-samhail dàta asyncronach (tha planaichean ann airson fear sioncronaich a chur ris).

Pròiseasar toraidh

Aig amannan feumar fios a chuir gu luchd-cleachdaidh bhon taobh a-muigh mu thighinn dàta ùr; airson an adhbhar seo, tha dreuchd pròiseasar toraidh ann. Às deidh an dàta a shàbhaladh, faodar a chuir chun neach-làimhseachaidh iomchaidh (mar eisimpleir, gus a thoirt chun fhoirm a dh ’fheumas an neach-cleachdaidh) - agus an uairsin a chuir chun cheangail airson a chuir. Tha ciudha càraidh air a chleachdadh an seo cuideachd: mura gabh duine ris an nì, faodaidh an rianaire feuchainn ris a-rithist nas anmoiche.

Sgèileadh

Tha na dreuchdan ceangail, pròiseasar cuir a-steach, agus pròiseasar toraidh gun stàit, a’ toirt cothrom dhuinn an siostam a sgèileadh gu còmhnard le bhith dìreach a’ cur suidheachaidhean tagraidh ùra ris leis an t-seòrsa dreuchd a tha thu ag iarraidh air a chomasachadh. Tha stòradh air a chleachdadh airson sgèileadh còmhnard dòigh-obrach gus cruinneachadh a chuir air dòigh a’ cleachdadh bucaidean brìgheil. Às deidh frithealaiche ùr a chuir ris, thèid cuid de bhucaid bho na seann frithealaichean a ghluasad chun t-seirbheisiche ùr air a’ chùl; bidh seo a’ tachairt gu follaiseach do luchd-cleachdaidh agus chan eil e a’ toirt buaidh air obrachadh an t-siostam gu lèir.

Feartan dàta

Faodaidh nithean a bhith glè mhòr agus bidh nithean eile ann. Bidh sinn a’ dèanamh cinnteach à atomachd ann a bhith a’ cur ris agus ag ùrachadh dàta le bhith a’ stòradh nì leis a h-uile eisimeileachd ann an aon bhucaid brìgheil. Tha seo a’ cur casg air an nì a bhith “air a sgaoileadh a-mach” thairis air grunn luchd-frithealaidh fiosaigeach.

Thathas a’ toirt taic do dhreach: bidh gach ùrachadh de nì a’ cruthachadh dreach ùr, agus is urrainn dhuinn an-còmhnaidh sliseag ùine a ghabhail agus faicinn mar a bha an saoghal a’ coimhead an uairsin. Airson dàta nach eil feumach air eachdraidh fhada, is urrainn dhuinn an àireamh de dhreachan a chuingealachadh no eadhon dìreach aon a stòradh - am fear as ùire - is e sin, gu bunaiteach cuir à comas dreach airson seòrsa sònraichte. Faodaidh tu cuideachd an eachdraidh a chuingealachadh le ùine: mar eisimpleir, cuir às do gach nì de ​​sheòrsa sònraichte nas sine na 1 bliadhna. Thathas cuideachd a’ toirt taic do thasglann: is urrainn dhuinn nithean nas sine na an ùine ainmichte a luchdachadh sìos, a’ saoradh àite sa bhuidheann.

gnìomhan

Am measg nam feartan inntinneach, is fhiach toirt fa-near an comas gnìomhan a chuir air bhog air clàr-ama, air iarrtas an neach-cleachdaidh, no gu prògram bhon bhogsa gainmhich:

Ailtireachd agus comasan Grid Dàta Tarantool

An seo chì sinn dreuchd eile - ruitheadair. Tha an dreuchd seo gun stàit, agus faodar suidheachaidhean tagraidh a bharrachd leis an dreuchd seo a chur ris a’ bhuidheann mar a dh’ fheumar. Is e dleastanas an ruitheadair gnìomhan a choileanadh. Mar a chaidh ainmeachadh, tha e comasach gnìomhan ùra a ghineadh bhon bhogsa gainmhich; bidh iad air an sàbhaladh ann an ciudha air stòradh agus an uairsin air an cur gu bàs air an ruitheadair. Canar Job ris an t-seòrsa gnìomh seo. Tha seòrsa gnìomh againn cuideachd ris an canar Task - is iad sin gnìomhan a tha air am mìneachadh leis an neach-cleachdaidh a bhios a’ ruith air clàr-ama (a’ cleachdadh co-chòrdadh cron) no air iarrtas. Gus gnìomhan mar sin a chuir air bhog agus a leantainn, tha manaidsear gnìomh goireasach againn. Gus am bi an gnìomh seo ri fhaighinn, feumaidh tu dreuchd a’ chlàr-ama a chomasachadh; tha staid aig an dreuchd seo, mar sin chan eil e a’ sgèile, nach eil riatanach; aig an aon àm, mar a h-uile dreuchd eile, faodaidh mac-samhail a bhith aige a thòisicheas ag obair ma dhiùltas am maighstir gu h-obann.

Logadair

Is e dreuchd eile ris an canar logger. Bidh e a 'tional logaichean bho gach ball den bhuidheann agus a' toirt seachad eadar-aghaidh airson an luchdachadh suas agus coimhead orra tron ​​​​eadar-aghaidh lìn.

Seirbheisean

'S fhiach toirt iomradh gu bheil an siostam ga dhèanamh furasta a chruthachadh seirbheisean. Anns an fhaidhle rèiteachaidh, faodaidh tu sònrachadh dè na h-iarrtasan a thèid a chuir gu inneal-làimhseachaidh sgrìobhte le neach-cleachdaidh a tha a’ ruith sa bhogsa gainmhich. Anns an inneal-làimhseachaidh seo, faodaidh tu, mar eisimpleir, seòrsa de cheist anailis a ruith agus an toradh a thilleadh.

Tha an t-seirbheis air a mhìneachadh anns an fhaidhle rèiteachaidh:

services:
   sum:
      doc: "adds two numbers"
      function: sum
      return_type: int
      args:
         x: int
         y: int

Tha an API GraphQL air a chruthachadh gu fèin-ghluasadach agus bidh an t-seirbheis ri fhaighinn airson fios a chuir gu:

query {
   sum(x: 1, y: 2) 
}

Canaidh seo an neach-làimhseachaidh suma bheir an toradh air ais:

3

Pròifil ceist agus Metrics

Gus tuigse fhaighinn air obrachadh an t-siostaim agus iarrtasan pròifil, chuir sinn an gnìomh taic airson protocol OpenTracing. Faodaidh an siostam fiosrachadh a chuir air iarrtas gu innealan a bheir taic don phròtacal seo, leithid Zipkin, a leigeas leat tuigsinn mar a chaidh an t-iarrtas a chuir an gnìomh:

Ailtireachd agus comasan Grid Dàta Tarantool

Gu nàdarra, tha an siostam a’ toirt seachad meatrach a-staigh a ghabhas cruinneachadh le bhith a’ cleachdadh Prometheus agus a dhealbhadh le bhith a’ cleachdadh Grafana.

Sgaoileadh

Faodar Grid Dàta Tarantool a chuir a-steach bho phasganan RPM no tasglann, a’ cleachdadh goireas bhon sgaoileadh no Ansible, tha taic ann cuideachd airson Kubernetes (Gnìomhaiche Tarantool Kubernetes).

Tha an tagradh a chuireas an gnìomh loidsig gnìomhachais (rèiteachadh, làimhseachadh) air a luchdachadh a-steach don bhuidheann Grid Dàta Tarantool ann an cruth tasglann tron ​​​​UI no a’ cleachdadh sgriobt tron ​​​​API a thug sinn seachad.

Eisimpleirean de iarrtasan

Dè na h-aplacaidean a ghabhas cruthachadh a’ cleachdadh Tarantool Data Grid? Gu dearbh, tha a’ mhòr-chuid de ghnìomhan gnìomhachais co-cheangailte ri bhith a’ giullachd, a’ stòradh agus a’ faighinn cothrom air sruthadh dàta. Mar sin, ma tha sruthan mòra de dhàta agad a dh’ fheumar a stòradh agus faighinn thuige gu tèarainte, faodaidh an toradh againn tòrr ùine leasachaidh a shàbhaladh dhut agus fòcas a chuir air loidsig do ghnìomhachas.

Mar eisimpleir, tha sinn airson fiosrachadh a chruinneachadh mu dheidhinn a 'mhargaidh oighreachd fìor, gus am bi san àm ri teachd, mar eisimpleir, bidh fiosrachadh againn mu na tairgsean as fheàrr. Anns a 'chùis seo, cuiridh sinn cuideam air na gnìomhan a leanas:

  1. Bidh innealan-fuadain a chruinnicheas fiosrachadh bho stòran fosgailte nan stòran dàta againn. Faodaidh tu an duilgheadas seo fhuasgladh le bhith a’ cleachdadh fhuasglaidhean deiseil no a’ sgrìobhadh còd ann an cànan sam bith.
  2. An ath rud, gabhaidh Grid Dàta Tarantool ris agus sàbhailidh e an dàta. Ma tha an cruth dàta bho dhiofar thùsan eadar-dhealaichte, faodaidh tu còd a sgrìobhadh ann an Lua a nì an tionndadh gu aon chruth. Aig an ìre ro-ghiollachd, bidh e comasach dhut cuideachd, mar eisimpleir, tairgsean dùblaichte a shìoladh no fiosrachadh ùrachadh mu riochdairean a tha ag obair sa mhargaidh san stòr-dàta.
  3. A-nis tha fuasgladh scalable agad mu thràth ann am brabhsair a ghabhas lìonadh le dàta agus tagh dàta. An uairsin faodaidh tu comas-gnìomh ùr a chuir an gnìomh, mar eisimpleir, seirbheis a sgrìobhadh a nì iarrtas airson dàta agus a bheir seachad an tairgse as buannachdail gach latha - feumaidh seo beagan loidhnichean anns an fhaidhle rèiteachaidh agus beagan còd Lua.

Dè a-nis?

Tha e na phrìomhachas dhuinn a bhith a’ leasachadh cho furasta ‘s a tha cleachdadh leasachaidh Grid dàta Tarantool. Mar eisimpleir, is e IDE a tha seo le taic airson luchd-làimhseachaidh pròifil agus deasbaid a’ ruith ann am bogsa gainmhich.

Bidh sinn cuideachd a’ toirt aire mhòr do chùisean sàbhailteachd. An-dràsta tha sinn a ’faighinn teisteanas le FSTEC na Ruis gus an ìre àrd de thèarainteachd a dhearbhadh agus coinneachadh ris na riatanasan airson teisteanas bathar-bog a thathas a’ cleachdadh ann an siostaman fiosrachaidh dàta pearsanta agus siostaman fiosrachaidh riaghaltais.

Source: www.habr.com

Cuir beachd ann