TÄ«mekļa pakalpojumu iekŔējā arhitektÅ«ra: tehnoloÄ£iju pamati un principi

In-Memory ir jēdzienu kopums datu glabāŔanai, kad tie tiek glabāti lietojumprogrammas RAM un disks tiek izmantots dublÄ“Å”anai. Klasiskajās pieejās dati tiek glabāti diskā un atmiņa tiek glabāta keÅ”atmiņā. Piemēram, tÄ«mekļa lietojumprogramma ar aizmugursistēmu datu apstrādei pieprasa tos krātuvē: tā tos saņem, pārveido, un tÄ«klā tiek pārsÅ«tÄ«ts daudz datu. In-Memory aprēķini tiek nosÅ«tÄ«ti uz datiem - uz krātuvi, kur tie tiek apstrādāti un tÄ«kls ir mazāk noslogots.

Pateicoties savai arhitektÅ«rai, In-Memory paātrina piekļuvi datiem vairākas reizes un dažreiz pat par lielumu. Piemēram, banku analÄ«tiÄ·i analÄ«tiskā pieteikumā vēlas redzēt pārskatu par izsniegtajiem kredÄ«tiem dinamikā pa dienām par pēdējo gadu. Å is process prasÄ«s minÅ«tes klasiskajā DBVS, bet ar In-Memory tas parādÄ«sies gandrÄ«z nekavējoties. Tas ir tāpēc, ka pieeja ļauj keÅ”atmiņā saglabāt daudz vairāk informācijas, un tā tiek glabāta RAM "pie rokas". Lietojumprogrammai nav jāpieprasa dati no cietā diska, kura pieejamÄ«bu ierobežo tÄ«kla un diska ātrums.

Kādas citas iespējas ir pieejamas, izmantojot In-Memory, un kāda ir Ŕī pieeja? Vladimirs Pligins - GridGain inženieris. Å is apskata materiāls bÅ«s noderÄ«gs tÄ«mekļa lietojumprogrammu aizmugursistēmas izstrādātājiem, kuri nav strādājuÅ”i ar In-Memory un vēlas izmēģināt vai interesējas par mÅ«sdienu tendencēm programmatÅ«ras izstrādē un arhitektÅ«ras dizainā.

PiezÄ«me. Raksts ir balstÄ«ts uz Vladimira ziņojuma atÅ”ifrējumu #GetIT Conf. Pirms paÅ”izolācijas ievieÅ”anas mēs regulāri rÄ«kojām izstrādātāju tikÅ”anās un konferences Maskavā un Sanktpēterburgā: pārrunājām tendences, aktuālos attÄ«stÄ«bas jautājumus, problēmas un to risinājumus. PaÅ”laik nav iespējams sarÄ«kot konferenci, taču ir pienācis laiks padalÄ«ties ar noderÄ«giem materiāliem no pagātnes.

Kas un kā izmanto In-Memory

In-Memory visbiežāk izmanto, ja nepiecieŔama ātra lietotāja mijiedarbība vai liela datu apjoma apstrāde.

  • Bankām izmantojiet In-Memory, piemēram, lai samazinātu kavÄ“Å”anos, kad klienti izmanto lietojumprogrammas, vai analizētu klientu pirms aizdevuma izsniegÅ”anas.
  • Fintech izmanto In-Memory, lai uzlabotu pakalpojumu un lietojumprogrammu veiktspēju bankām, kuras izmanto ārpakalpojumus datu apstrādi un analÄ«zi. 
  • ApdroÅ”ināŔanas kompānijas: lai aprēķinātu riskus, piemēram, analizējot klientu datus vairāku gadu garumā.
  • LoÄ£istikas uzņēmumi. Tie apstrādā daudz datu, piemēram, lai aprēķinātu optimālos marÅ”rutus kravu un pasažieru pārvadāŔanai ar tÅ«kstoÅ”iem parametru un izsekotu sÅ«tÄ«jumu statusam.
  • MazumtirdzniecÄ«ba. In-Memory risinājumi palÄ«dz ātrāk apkalpot klientus un apstrādāt lielus informācijas apjomus: sÅ«tÄ«jumus, rēķinus, darÄ«jumus, tÅ«kstoÅ”iem preču atraÅ”anos noliktavās un sagatavot analÄ«tiskās atskaites.
  • Š’ IoT In-Memory aizstāj tradicionālās datu bāzes.
  • Farmaceitiskā uzņēmumi izmanto In-Memory, piemēram, lai sakārtotu zāļu sastāvu kombinācijas. 

Es jums pastāstÄ«Å”u dažus piemērus, kā mÅ«su klienti izmanto In-Memory risinājumus un kā jÅ«s pats varat tos ieviest.

Atmiņā kā primārā krātuve

Viens no mÅ«su klientiem ir liels medicÄ«nas zinātniskā aprÄ«kojuma piegādātājs no ASV. Viņi izmanto In-Memory risinājumu kā galveno datu krātuvi. Visi dati tiek glabāti diskā, un aktÄ«vi izmantotā datu apakÅ”kopa tiek glabāta RAM. Krātuves piekļuves metodes ir standarta - GDBC (Generic Database Connector) un SQL vaicājumu valoda.

TÄ«mekļa pakalpojumu iekŔējā arhitektÅ«ra: tehnoloÄ£iju pamati un principi

To kopā sauc par atmiņas datu bāzi (IMDB) vai uz atmiņu orientētu krātuvi. Å ai risinājumu klasei ir daudz nosaukumu, tie nav vienÄ«gie. 

IMDB funkcijas:

  • Dati, kas tiek glabāti atmiņā un kuriem piekļūst, izmantojot SQL, ir tādi paÅ”i kā citās pieejās. Tie ir sinhronizēti, atŔķiras tikai pasniegÅ”anas veids, uzrunāŔanas veids. DarÄ«jumi darbojas starp datiem.

  • IMDB ir ātrāks par relāciju datu bāzēm, jo ā€‹ā€‹tas ir ātrāk izgÅ«t informāciju no RAM nekā no diska. 
  • IekŔējiem optimizācijas algoritmiem ir mazāk norādÄ«jumu.
  • IMDB ir piemēroti datu, notikumu un darÄ«jumu pārvaldÄ«bai lietojumprogrammās.

IMDB daļēji atbalsta ACID: atomitāti, konsistenci un izolāciju. Bet tie neatbalsta ā€œizturÄ«buā€ - izslēdzot baroÅ”anu, visi dati tiek zaudēti. Lai atrisinātu problēmu, varat izmantot momentuzņēmumus - datu bāzes ā€œmomentuzņēmumuā€, kas ir analogs datu bāzes dublējumam cietajā diskā, vai ierakstÄ«t darÄ«jumus (žurnālus), lai atjaunotu datus pēc pārstartÄ“Å”anas.

Lai izveidotu defektu izturīgas lietojumprogrammas

Iedomāsimies klasisko kļūmju izturÄ«gas tÄ«mekļa lietojumprogrammas arhitektÅ«ru. Tas darbojas Ŕādi: visus pieprasÄ«jumus starp serveriem izplata tÄ«mekļa balansētājs. Å Ä« sistēma ir stabila, jo serveri dublējas viens otru un dublējas incidentu gadÄ«jumā.

TÄ«mekļa pakalpojumu iekŔējā arhitektÅ«ra: tehnoloÄ£iju pamati un principi

Balansētājs novirza visus pieprasÄ«jumus no vienas sesijas stingri uz vienu serveri. Å is ir stick sesijas mehānisms: katra sesija ir saistÄ«ta ar serveri, kurā tā tiek lokāli saglabāta un apstrādāta. 

Kas notiek, ja kāds no serveriem neizdodas?

TÄ«mekļa pakalpojumu iekŔējā arhitektÅ«ra: tehnoloÄ£iju pamati un principi

Pakalpojums netiks ietekmēts, jo arhitektÅ«ra ir dublēta. Bet mēs zaudēsim miruŔā servera sesiju apakÅ”kopu. Un tajā paŔā laikā lietotāji, kuri ir saistÄ«ti ar Ŕīm sesijām. Piemēram, klients veic pasÅ«tÄ«jumu un pēkŔņi izmet viņu no biroja. ViņŔ bÅ«s nelaimÄ«gs, kad atkal pieteiksies un atklās, ka viss bÅ«s jādara no jauna.

TÄ«mekļa lietojumprogramma ir nepiecieÅ”ama, lai atbalstÄ«tu lielu skaitu lietotāju un nepalēninātu, lai viņi varētu ērti strādāt. Bet, ja tas tiek atteikts, ar katru nākamo pieprasÄ«jumu palielināsies laiks, kas nepiecieÅ”ams saziņai ar sesiju veikalu. Tas palielina vidējo latentumu citiem lietotājiem. Bet viņi nevēlas gaidÄ«t ilgāk, nekā ir pieraduÅ”i.

Å o problēmu var atrisināt tāpat kā otru mÅ«su klientu, lielu PASS pakalpojumu sniedzēju no ASV. TÄ«mekļa sesiju klasterÄ“Å”anai tiek izmantota funkcija In-Memory. Lai to izdarÄ«tu, tas tos saglabā nevis lokāli, bet gan centralizēti - In-Memory klasterÄ«. Å ajā gadÄ«jumā sesijas ir pieejamas daudz ātrāk, jo tās jau atrodas RAM.

TÄ«mekļa pakalpojumu iekŔējā arhitektÅ«ra: tehnoloÄ£iju pamati un principi

Kad serveris avarē, balansētājs nosÅ«ta pieprasÄ«jumus no avarējuŔā servera uz citiem serveriem, kā tas ir klasiskajā arhitektÅ«rā. Bet ir bÅ«tiska atŔķirÄ«ba: sesijas tiek saglabātas In-Memory klasterÄ« un serveriem ir piekļuve krituŔā servera sesijām.

Šī arhitektūra palielina visas sistēmas kļūdu toleranci. Turklāt ir iespējams pilnībā atteikties no stick sesijas mehānisma.

Hibrīda transakciju analītiskā apstrāde (HTAP)

Parasti darÄ«jumu un analÄ«tiskās sistēmas tiek turētas atseviŔķi. Kad tie atdalās, galvenā bāze tiek pakļauta slodzei. AnalÄ«tiskai apstrādei dati tiek kopēti replikā, lai analÄ«tiskā apstrāde netraucētu darÄ«jumu procesiem. Bet kopÄ“Å”ana notiek ar nobÄ«di ā€” to nav iespējams replicēt bez kavÄ“Å”anās. Ja mēs to darÄ«sim sinhroni, tas arÄ« palēninās galveno bāzi un mēs neiegÅ«sim nekādus laimestus.

HTAP viss darbojas savādāk ā€” to paÅ”u datu krātuvi izmanto darÄ«jumu slodzei no lietojumprogrammām un analÄ«tiskajiem vaicājumiem, kuru aizpildÄ«Å”ana var aizņemt ilgu laiku. Kad dati atrodas RAM, analÄ«tiskie vaicājumi tiek izpildÄ«ti ātrāk, un serveris ar datu bāzi ir mazāk noslogots (vidēji).

TÄ«mekļa pakalpojumu iekŔējā arhitektÅ«ra: tehnoloÄ£iju pamati un principi

HibrÄ«da pieeja nojauc sienu starp darÄ«jumu apstrādi un analÄ«zi. Ja mēs veicam analÄ«zi tajā paŔā krātuvē, tiek palaisti analÄ«tiskie vaicājumi datiem no RAM. Tie ir daudz precÄ«zāki, interpretējamāki un adekvātāki.

In-Memory risinājumu integrācija

(salÄ«dzinoÅ”i) vienkārÅ”s veids - attÄ«stÄ«t visu no nulles. Mēs glabājam datus diskā un saglabājam karstos datus atmiņā. Tas palÄ«dz pārdzÄ«vot servera atsāknÄ“Å”anu vai pārtraukumus.

Å eit darbojas divi galvenie scenāriji, kad dati tiek glabāti diskā. Pirmajā gadÄ«jumā mēs vēlamies izdzÄ«vot avārijas vai regulāras klastera vai daļu atkārtotas palaiÅ”anas - mēs vēlamies to izmantot kā vienkārÅ”u datu bāzi. Otrajā scenārijā, kad ir pārāk daudz datu, daļa no tiem ir atmiņā.

Ja nav iespējams visu izveidot no nulles, ir iespējams integrēt In-Memory jau esoÅ”o arhitektÅ«ru. Taču ne visi In-Memory risinājumi tam ir piemēroti. Ir trÄ«s obligāti nosacÄ«jumi. In-Memory risinājumam ir jāatbalsta:

  • standarta veids, kā izveidot savienojumu ar datubāzi, kas atradÄ«sies zem tās (piemēram, MySQL);
  • standarta vaicājumu valoda, lai nepārrakstÄ«tu un nemainÄ«tu mijiedarbÄ«bas ar krātuvi loÄ£iku;
  • transakcija - saglabā mijiedarbÄ«bas semantiku.

Ja ir izpildÄ«ti visi trÄ«s nosacÄ«jumi, tad integrācija ir iespējama. Mēs ievietojam atmiņas datu režģi starp lietojumprogrammu un datu bāzi. Tagad rakstÄ«Å”anas pieprasÄ«jumi tiks deleģēti pamatā esoÅ”ajai datubāzei, un lasÄ«Å”anas pieprasÄ«jumi tiks deleģēti pamatā esoÅ”ajai datubāzei, ja dati nav keÅ”atmiņā.

TÄ«mekļa pakalpojumu iekŔējā arhitektÅ«ra: tehnoloÄ£iju pamati un principi

Ja jums ir svarÄ«ga ātra piekļuve datiem un to apstrāde, piemēram, biznesa analÄ«tikai, varat padomāt par In-Memory ievieÅ”anu. Un ievieÅ”anai, izstrādājot jaunu arhitektÅ«ru, varat izmantot abas metodes.

Avots: www.habr.com

Pievieno komentāru