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.
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.
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Ä.
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?
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.
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).
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ÅÄ.
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