Arkitektura in-memory për shërbimet në internet: bazat e teknologjisë dhe parimet

In-Memory — njĂ« grup konceptesh pĂ«r ruajtjen e tĂ« dhĂ«nave, kur ato ruhen nĂ« memorien operative tĂ« aplikacionit, ndĂ«rsa disku pĂ«rdoret pĂ«r backup. NĂ« qasjet klasike, tĂ« dhĂ«nat ruhen nĂ« disk, dhe memoria Ă«shtĂ« nĂ« cache. PĂ«r shembull, njĂ« aplikacion web me backend pĂ«r pĂ«rpunimin e tĂ« dhĂ«nave i kĂ«rkon ato nĂ« depo: merr, transformon, dhe nĂ« rrjet kalon njĂ« sasi tĂ« madhe tĂ« dhĂ«nash. NĂ« In-Memory, llogaritjet dĂ«rgohen nĂ« tĂ« dhĂ«na — nĂ« depo, ku pĂ«rpunohen dhe rrjeti ngarkohet mĂ« pak.

Luaj videon
FalĂ« arkitekturĂ«s sĂ« saj, nĂ« In-Memory shpejtĂ«sia e accesit nĂ« tĂ« dhĂ«na rritet shumĂ«fish, ndonjĂ«herĂ« edhe nĂ« rend tĂ« madh. PĂ«r shembull, analistĂ«t nĂ« bankĂ« duan tĂ« shohin njĂ« raport mbi kreditorĂ«t e dhĂ«nĂ« pĂ«r çdo ditĂ« gjatĂ« vitit tĂ« kaluar nĂ« njĂ« aplikacion analitik. Ky proces nĂ« njĂ« DB klasik do tĂ« zĂ«nte minuta, ndĂ«rsa me In-Memory do tĂ« shfaqet pothuajse menjĂ«herĂ«. Kjo ndodh sepse qasja lejon qĂ« tĂ« ruhet njĂ« sasi shumĂ« mĂ« e madhe informacioni dhe ajo ruhet nĂ« memorien operative ‘nĂ« dorë’. Aplikacionit nuk i nevojitet tĂ« kĂ«rkojĂ« tĂ« dhĂ«nat nga disku tĂ« fortĂ«, aksesueshmĂ«ria e tĂ« cilave Ă«shtĂ« e kufizuar nga shpejtĂ«sia e rrjetit dhe diskut.

Cilat mundĂ«si tĂ« tjera janĂ« tĂ« disponueshme me In-Memory dhe çfarĂ« qasjeje Ă«shtĂ«, do tĂ« tregojĂ« Vladimir Pligin — inxhinier nĂ« kompaninĂ« GridGain. Ky material pĂ«rmbledhĂ«s do tĂ« jetĂ« i dobishĂ«m pĂ«r zhvilluesit e backend-it tĂ« aplikacioneve web qĂ« nuk kanĂ« punuar me In-Memory dhe duan tĂ« provojnĂ«, ose qĂ« janĂ« tĂ« interesuar nĂ« trendet moderne tĂ« zhvillimit tĂ« zgjidhjeve software dhe projektimin e arkitekturĂ«s.

Shënim. Artikulli është i bazuar në transkriptimin e fjalimit të Vladimirit në konferencën #GetIT Conf. Para hyrjes në vetëizolim ne zakonisht zhvillonim meet-up dhe konferenca për zhvilluesit në Moskë dhe Shën Petersburg: diskutonim trendet, çështjet e rëndësishme të zhvillimit, problemet dhe zgjidhjet e tyre. Tani nuk ka mundësi të zhvillohen konferenca, por tani është koha për të ndarë materiale të dobishme nga të kaluarat.

Kush dhe si përdor In-Memory

In-Memory përdoret më shpesh aty ku kërkohet interaksion i shpejtë me përdoruesin ose përpunimin e sasi të mëdha të të dhënave.

  • Bankat pĂ«rdorin In-Memory, pĂ«r shembull, pĂ«r tĂ« ulur vonesat kur klientĂ«t pĂ«rdorin aplikacionet ose pĂ«r analizĂ«n e klientĂ«ve para dhĂ«nies sĂ« kredisĂ«.
  • Fintech pĂ«rdor In-Memory pĂ«r tĂ« pĂ«rmirĂ«suar performancĂ«n e shĂ«rbimeve dhe aplikacioneve pĂ«r banka, tĂ« cilat e delegojnĂ« pĂ«rpunimin dhe analizĂ«n e tĂ« dhĂ«nave nĂ« outsource. 
  • Kompani tĂ« sigurimeve: pĂ«r tĂ« llogaritur rreziqet, pĂ«r shembull, duke analizuar tĂ« dhĂ«nat e klientit pĂ«r disa vite.
  • Kompani logjistike. Ato pĂ«rpunojnĂ« shumĂ« tĂ« dhĂ«na, pĂ«r shembull, pĂ«r tĂ« llogaritur rrugĂ«t optimale tĂ« transportit tĂ« mallrave dhe pasagjerĂ«ve me mijĂ«ra parametra, duke ndjekur statusin e dĂ«rgesave.
  • PĂ«rgjigjĂ«sia. Zgjidhjet In-Memory ndihmojnĂ« nĂ« shĂ«rbimin mĂ« tĂ« shpejtĂ« tĂ« klientĂ«ve dhe nĂ« pĂ«rpunimin e sasisĂ« sĂ« konsiderueshme tĂ« informacionit: dĂ«rgesat, faturat, transaksionet, disponibiliteti i mijĂ«ra produkteve nĂ« depo, krijimin e raporteve analitike.
  • NĂ« IoT In-Memory zĂ«vendĂ«son bazat e tĂ« dhĂ«nave tradicionale.
  • Kompani farmaceutike pĂ«rdorin In-Memory, pĂ«r shembull, pĂ«r tĂ« provuar kombinime tĂ« pĂ«rbĂ«rjes sĂ« ilaçeve. 

Do flas disa shembuj se si klientët tanë përdorin zgjidhjet In-Memory dhe si mund t'i aplikoni ato në kompaninë tuaj.

In-Memory si magazina kryesore

NjĂ« prej klientĂ«ve tanĂ« Ă«shtĂ« njĂ« furnizues i madh i pajisjeve shkencore mjekĂ«sore nga SHBA. Ata pĂ«rdorin njĂ« zgjidhje In-Memory si magazinĂ« kryesore tĂ« tĂ« dhĂ«nave. TĂ« gjitha tĂ« dhĂ«nat ruhen nĂ« disk, ndĂ«rsa nĂ«ngrupi i tĂ« dhĂ«nave qĂ« pĂ«rdoret aktivisht mbahen nĂ« RAM. Metodat e qasjes nĂ« magazinĂ« janĂ« standarde—GDBC (Generic Database Connector) dhe gjuha e pyetjeve SQL.

Arkitektura in-memory për shërbimet në internet: bazat e teknologjisë dhe parimet

Të gjitha së bashku quhen In-Memory Database (IMDB) ose Storage Centric në Memorie. Ky klas zgjidhjesh ka shumë emra, këto nuk janë ato të vetmet. 

Karakteristikat e IMDB:

  • TĂ« dhĂ«nat e ruajtura nĂ« In-Memory dhe tĂ« qasshme pĂ«rmes SQL janĂ« tĂ« njĂ«jtat si nĂ« qasjet e tjera. Ato janĂ« sinkronizuar, ndryshon vetĂ«m mĂ«nyra e paraqitjes dhe mĂ«nyra e qasjes. Midis tĂ« dhĂ«nave punon transaksionaliteti.

  • IMDB janĂ« mĂ« tĂ« shpejtĂ« se bazat e tĂ« dhĂ«nave relacionales, sepse Ă«shtĂ« mĂ« e shpejtĂ« tĂ« nxjerrĂ«sh informacion nga RAM sesa nga disku. 
  • Proporcionalisht, algoritmet e optimizimit tĂ« brendshĂ«m kanĂ« mĂ« pak instruksione.
  • IMDB janĂ« tĂ« pĂ«rshtatshme pĂ«r menaxhimin e tĂ« dhĂ«nave, ngjarjeve dhe transaksioneve nĂ« aplikacione.

IMDB mbĂ«shtesin pjesĂ«risht ACID: atomizimi, konsistenca dhe izolimi. Por nuk mbĂ«shtesin "qĂ«ndrueshmĂ«rinĂ«" - kur fiket energjia, tĂ« dhĂ«nat humbasin. PĂ«r tĂ« zgjidhur problemin mund tĂ« pĂ«rdoren snapshot-et—"sĂ« paku njĂ«" e bazĂ«s sĂ« tĂ« dhĂ«nave, ekuivalenti i bkup-it tĂ« DB nĂ« diskun e fortĂ«, ose tĂ« regjistrohen transaksionet (log-et), pĂ«r tĂ« rikuperuar tĂ« dhĂ«nat pas rinisjes.

Për krijimin e aplikacioneve të besueshme

Le taqojmë arkitekturën klasike të një aplikacioni web të qëndrueshëm. Ajo funksionon kështu: të gjitha kërkesat shpërndahen nga një balancues i webit midis serverëve. Kjo sistem është i qëndrueshëm, sepse serverët përzgjidhen dhe mbështesin njëri-tjetrin në raste incidentesh.

Arkitektura in-memory për shërbimet në internet: bazat e teknologjisë dhe parimet

Balancuesi drejton të gjitha kërkesat nga një seancë e vetme strikt tek një server. Ky është mekanizmi i seancave të ngjitur: çdo seancë lidhet me serverit, ku ajo ruhet dhe përpunuar lokal. 

ÇfarĂ« do tĂ« ndodhĂ« kur njĂ« nga serverĂ«sh?

Arkitektura in-memory për shërbimet në internet: bazat e teknologjisë dhe parimet

serverët dështon? Shërbimi nuk do të dëmtohet, sepse arkitektura është e dyfishuar. Por ne do të humbasim një nënmësym për sesionet e serverit të vdekur. Po ashtu dhe përdoruesit që janë të lidhur me këto seanca. Për shembull, një klient vendos një porosi dhe papritur hidhet jashtë nga llogaria. Ai do të jetë i pakënaqur kur të rihyjë dhe të zbulojë se gjithçka duhet ta bëjë përsëri.

Një aplikacion web kërkohet të mbështesë një numër të madh përdoruesish dhe të mos 'ngadalësohet', në mënyrë që ata të kenë komoditet në përdorim. Por në rast dështimi, me çdo kërkesë tjetër, koha e komunikimit me ruajtjen e sesioneve do të rritet. Kjo rrit vonesën mesatare (latency) për përdoruesit e tjerë. Por ata nuk duan të presin më shumë se çfarë janë mësuar.

Ky problem mund tĂ« zgjidhet, si njĂ« tjetĂ«r klienti ynĂ« — njĂ« provajder i madh PAS nĂ« SHBA. Ai pĂ«rdor In-Memory pĂ«r tĂ« klasterizuar sesionet web. PĂ«r kĂ«tĂ«, ato ruhen jo lokal, por nĂ« mĂ«nyrĂ« qendrore — nĂ« klasterin In-Memory. NĂ« kĂ«tĂ« rast, sesionet janĂ« shumĂ« mĂ« tĂ« shpejta, sepse ato ndodhen tashmĂ« nĂ« memorien operative.

Arkitektura in-memory për shërbimet në internet: bazat e teknologjisë dhe parimet

Kur serveri dështon, balancuesi dërgon kërkesat e rënë në serverë të tjerë, ashtu si në arkitekturën klasike. Por ka një ndryshim të rëndësishëm: sesionet ruhen në klasterin In-Memory dhe serverët kanë qasje në sesionet e serverit të rënë.

Kjo arkitekturë rrit qëndrueshmërinë e gjithë sistemit. Më shumë se kaq, është e mundur të hiqet krejtësisht mekanizmi i seancave të ngjitura.

Përpunimi hibrid transaksional-analitik (HTAP)

Zakonisht, sistemet transaksionale dhe analitike mbahen veçmas. Kur ato ndahen, baza kryesore përballohet me ngarkesë. Për përpunimin analitik, të dhënat kopjohen në një replikë, në mënyrë që përpunimi analitik të mos pengojë proceset transaksionale. Por kopjimi bëhet me vonesë - pa vonesë, replikimi është i pamundur. Nëse e bëjmë këtë në mënyrë sinkrone, do të ngadalësojë gjithashtu bazën kryesore dhe nuk do të kemi fitim.

Në HTAP, gjithçka funksionon ndryshe - të njëjtin depo të dhënash përdorim për ngarkesën transaksionale nga aplikacionet dhe për kërkesat analitike, të cilat mund të zgjasin gjatë. Kur të dhënat janë në memorie operative, kërkesat analitike përfundohen më shpejt dhe serveri me DB ngarkohet më pak (në mesatare).

Arkitektura in-memory për shërbimet në internet: bazat e teknologjisë dhe parimet

Qasja hibride "thyen murin" ndërmjet përpunimit të transaksioneve dhe analitikës. Nëse ne kryejmë analizën në të njëjtën depo, kërkesat analitike nisën mbi të dhënat nga memoria operative. Ato janë shumë më të sakta, më interpretueshmë dhe më adekuate.

Integrimi i zgjidhjeve In-Memory

Një mënyrë relativisht e thjeshtë - të zhvillojmë gjithçka nga fillimi. Ne mbajmë të dhënat në disk, ndërsa ato të nxehta i ruajmë në memorie. Kjo ndihmon për të përballuar rikthimet e serverëve ose ndërprerjet.

KĂ«tu funksionojnĂ« dy skenarĂ« kryesorĂ«, kur tĂ« dhĂ«nat ruhen nĂ« disk. NĂ« tĂ« parin, ne duam tĂ« pĂ«rballojmĂ« rĂ«niet ose rikthimet e zakonshme tĂ« klasterit ose pjesĂ«ve — duam ta pĂ«rdorim si njĂ« bazĂ« tĂ« thjeshtĂ« tĂ« dhĂ«nash. NĂ« skenarin e dytĂ«, kur ka shumĂ« tĂ« dhĂ«na, njĂ« pjesĂ« e tyre Ă«shtĂ« nĂ« memorie.

Nëse nuk ka mundësi të gjithë të ndërtohet nga fillimi, mund të integrohet In-Memory në tashmë arkitekturën ekzistuese. Por jo të gjitha zgjidhjet In-Memory janë të përshtatshme për këtë. Ka tre kushte të detyrueshme. Zgjidhja In-Memory duhet të mbështesë:

  • njĂ« standard tĂ« mĂ«nyrĂ«s pĂ«r t'u lidhur me bazĂ«n, qĂ« do tĂ« jetĂ« nĂ«n tĂ« (pĂ«r shembull, MySQL);
  • njĂ« gjuhĂ« standard kĂ«rkese, pĂ«r tĂ« mos rritur dhe ndryshuar logjikĂ«n e ndĂ«rveprimit me depo;”
  • transaksionalitetin - pĂ«r tĂ« ruajtur semantikĂ«n e ndĂ«rveprimit.

Nëse të tri kushtet respektohen, atëherë integrimi është i mundur. Vendosim In-Memory Data Grid ndërmjet aplikacionit dhe bazës. Tani kërkesat për shkruar do të delegohen në bazën e poshtme, dhe kërkesat për të lexuar - në bazë, nëse të dhënat nuk janë në cache.

Arkitektura in-memory për shërbimet në internet: bazat e teknologjisë dhe parimet

NĂ«se ju intereson qasja e shpejtĂ« nĂ« tĂ« dhĂ«na dhe pĂ«rpunimi i tyre, pĂ«r shembull, pĂ«r analizat e biznesit – mund tĂ« mendoni pĂ«r implementimin e In-Memory. PĂ«r realizimin e tij mund tĂ« pĂ«rdorni tĂ« dyja mĂ«nyrat gjatĂ« projektimit tĂ« arkitekturĂ«s sĂ« re.

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster