In-memorya nga arkitektura alang sa mga serbisyo sa web: mga sukaranan sa teknolohiya ug mga prinsipyo

Ang In-Memory usa ka hugpong sa mga konsepto alang sa pagtipig sa datos kung kini gitipigan sa RAM sa aplikasyon, ug ang disk gigamit alang sa pag-backup. Sa klasikal nga mga pamaagi, ang data gitipigan sa disk ug ang memorya gitipigan sa cache. Pananglitan, ang usa ka web application nga adunay backend alang sa pagproseso sa datos naghangyo niini sa pagtipig: kini nakadawat niini, nagbag-o niini, ug daghang mga datos ang gibalhin sa network. Sa In-Memory, ang mga kalkulasyon gipadala sa data - sa pagtipig, diin kini giproseso ug ang network dili kaayo puno.

Salamat sa arkitektura niini, ang In-Memory nagpadali sa pag-access sa datos sa daghang mga higayon, ug usahay bisan mga order sa kadako, mas paspas. Pananglitan, gusto sa mga analista sa bangko nga makita sa usa ka analytical nga aplikasyon ang usa ka taho sa gi-isyu nga mga pautang sa dinamika sa adlaw alang sa miaging tuig. Kini nga proseso magkinahanglan og mga minuto sa usa ka klasiko nga DBMS, apan sa In-Memory kini makita dayon. Kini tungod kay ang pamaagi nagtugot kanimo sa pag-cache sa mas daghang impormasyon ug kini gitipigan sa RAM "sa kamot". Ang aplikasyon dili kinahanglan nga mangayo og data gikan sa hard drive, ang pagkabaton niini limitado sa network ug disk speed.

Unsa ang ubang mga posibilidad nga magamit sa In-Memory ug unsa nga matang sa pamaagi kini? Vladimir Pligin - engineer sa GridGain. Kini nga materyal sa pagrepaso mahimong mapuslanon sa mga nag-develop sa backend sa web application nga wala pa nagtrabaho kauban ang In-Memory ug gusto nga sulayan, o interesado sa mga modernong uso sa pagpalambo sa software ug disenyo sa arkitektura.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Ang artikulo gibase sa transcript sa report ni Vladimir sa #GetIT Conf. Sa wala pa ang pagpaila sa pag-inusara sa kaugalingon, kanunay kaming nagpahigayon og mga miting ug mga komperensya alang sa mga developer sa Moscow ug St. Dili posible nga maghimo usa ka komperensya karon, apan panahon na aron ipaambit ang mapuslanon nga mga materyal gikan sa nangagi.

Kinsa ang naggamit sa In-Memory ug giunsa

Ang In-Memory kasagarang gigamit kung diin ang paspas nga interaksyon sa tiggamit o pagproseso sa daghang mga datos gikinahanglan.

  • Mga bangko gamita ang In-Memory, pananglitan, aron makunhuran ang mga paglangan kung ang mga kliyente mogamit mga aplikasyon o aron analisahon ang kliyente sa wala pa mag-isyu og loan.
  • Fintech naggamit sa In-Memory aron mapauswag ang performance sa mga serbisyo ug aplikasyon para sa mga bangko nga nag-outsource sa pagproseso ug pagtuki sa datos. 
  • Mga kompanya sa seguro: aron kuwentahon ang mga risgo, pananglitan, pinaagi sa pag-analisar sa datos sa kustomer sulod sa pipila ka tuig.
  • Mga kompanya sa logistik. Giproseso nila ang daghang mga datos, pananglitan, aron makalkulo ang kamalaumon nga mga ruta alang sa transportasyon sa kargamento ug pasahero nga adunay libu-libo nga mga parameter, ug pagsubay sa kahimtang sa mga kargamento.
  • Pagbaligya. Ang mga solusyon sa In-Memory makatabang sa pag-alagad sa mga kustomer nga mas paspas ug pagproseso sa daghang mga volume sa impormasyon: mga kargamento, mga invoice, mga transaksyon, ang presensya sa liboan ka mga butang sa mga bodega, ug pag-andam sa mga analitikal nga mga taho.
  • Π’ IoT Gipulihan sa In-Memory ang tradisyonal nga mga database.
  • Pharmaceutical Ang mga kompanya naggamit sa In-Memory, pananglitan, aron maihap ang mga kombinasyon sa mga komposisyon sa tambal. 

Isulti ko kanimo ang pipila ka mga pananglitan kung giunsa paggamit sa among mga kliyente ang mga solusyon sa In-Memory ug kung giunsa nimo kini ipatuman sa imong kaugalingon.

In-Memory isip pangunang pagtipig

Usa sa among mga kliyente mao ang usa ka dako nga supplier sa medikal nga siyentipikong ekipo gikan sa USA. Gigamit nila ang usa ka In-Memory nga solusyon isip ilang nag-unang pagtipig sa datos. Ang tanan nga datos gitipigan sa disk, ug ang subset sa datos nga aktibong gigamit gitipigan sa RAM. Ang mga pamaagi sa pag-access sa pagtipig kay sukaranan - GDBC (Generic Database Connector) ug SQL query nga pinulongan.

In-memorya nga arkitektura alang sa mga serbisyo sa web: mga sukaranan sa teknolohiya ug mga prinsipyo

Sa tingub gitawag kini nga In-Memory Database (IMDB) o Memory-Centric Storage. Kini nga klase sa mga solusyon adunay daghang mga ngalan, dili lamang kini. 

Mga Feature sa IMDB:

  • Ang datos nga gitipigan sa In-Memory ug gi-access pinaagi sa SQL parehas sa ubang mga pamaagi. Nahiangay sila, lahi ra ang paagi sa pagpresentar, ang paagi sa pagtubag kanila. Ang transaksyon naglihok tali sa datos.

  • Ang IMDB mas paspas kay sa relational database tungod kay mas paspas ang pagkuha sa impormasyon gikan sa RAM kay sa disk. 
  • Ang mga internal nga algorithm sa pag-optimize adunay gamay nga mga panudlo.
  • Ang mga IMDB angay alang sa pagdumala sa datos, mga panghitabo ug mga transaksyon sa mga aplikasyon.

Ang mga IMDB partially nagsuporta sa ACID: Atomicity, Consistency, ug Isolation. Apan wala nila gisuportahan ang "kalig-on" - kung ang gahum gipalong, nawala ang tanan nga datos. Aron masulbad ang problema, mahimo nimong gamiton ang mga snapshot - usa ka "snapshot" sa database, susama sa backup sa database sa hard drive, o pagrekord sa mga transaksyon (mga log) aron mapasig-uli ang datos pagkahuman sa pag-reboot.

Sa paghimo sa mga aplikasyon nga dili matugot sa sayup

Atong mahanduraw ang klasiko nga arkitektura sa usa ka fault-tolerant nga aplikasyon sa web. Kini molihok sama niini: ang tanan nga mga hangyo giapod-apod sa usa ka web balancer tali sa mga server. Kini nga sistema lig-on tungod kay ang mga server nagdoble sa usag usa ug nag-back up kung adunay mga insidente.

In-memorya nga arkitektura alang sa mga serbisyo sa web: mga sukaranan sa teknolohiya ug mga prinsipyo

Ang balancer nagdumala sa tanan nga mga hangyo gikan sa usa ka sesyon nga hugot ngadto sa usa ka server. Kini usa ka mekanismo sa sesyon sa stick: ang matag sesyon nalangkit sa usa ka server diin kini gitipigan ug giproseso sa lokal. 

Unsa ang mahitabo kung ang usa sa mga server mapakyas?

In-memorya nga arkitektura alang sa mga serbisyo sa web: mga sukaranan sa teknolohiya ug mga prinsipyo

Dili maapektuhan ang serbisyo tungod kay gidoble ang arkitektura. Apan mawala ang usa ka subset sa mga sesyon sa patay nga server. Ug sa parehas nga oras, ang mga tiggamit nga nahigot sa kini nga mga sesyon. Pananglitan, ang usa ka kliyente nag-order ug kalit nga gilabay siya sa gawas sa opisina. Dili siya malipay kung mag-log in siya pag-usab ug mahibal-an nga ang tanan kinahanglan buhaton pag-usab.

Ang usa ka web application gikinahanglan aron suportahan ang daghang mga tiggamit ug dili mohinay aron sila makatrabaho nga komportable. Apan kung kini gibalibaran, sa matag sunod nga hangyo ang oras nga gikinahanglan sa pagpakigsulti sa tindahan sa sesyon motaas. Kini nagdugang sa kasagaran nga latency alang sa ubang mga tiggamit. Apan dili nila gusto nga maghulat ug dugay kaysa ilang naandan.

Kini nga problema mahimong masulbad sama sa among uban nga kliyente, usa ka dako nga tighatag sa PASS gikan sa USA. Gigamit niini ang In-Memory sa pag-cluster sa mga sesyon sa web. Aron mahimo kini, gitipigan kini dili sa lokal, apan sa sentro - sa usa ka In-Memory cluster. Sa kini nga kaso, ang mga sesyon magamit nga labi ka paspas tungod kay naa na sila sa RAM.

In-memorya nga arkitektura alang sa mga serbisyo sa web: mga sukaranan sa teknolohiya ug mga prinsipyo

Kung ang usa ka server nahagsa, ang balancer nagpadala sa mga hangyo gikan sa nahagsa nga server ngadto sa ubang mga server, sama sa klasikal nga arkitektura. Apan adunay usa ka hinungdanon nga kalainan: Ang mga sesyon gitipigan sa usa ka In-Memory cluster ug ang mga server adunay access sa mga sesyon sa nahulog nga server.

Kini nga arkitektura nagdugang sa pagtugot sa sayup sa tibuuk nga sistema. Dugang pa, posible nga biyaan ang mekanismo sa sesyon sa stick sa hingpit.

Hybrid Transactional Analytical Processing (HTAP)

Kasagaran, ang transactional ug analytical nga mga sistema gipabilin nga bulag. Sa diha nga sila magbulag, ang nag-unang base moabut ubos sa load. Para sa analytical processing, ang data gikopya ngadto sa replica aron ang analytical processing dili makabalda sa transactional nga mga proseso. Apan ang pagkopya mahitabo sa usa ka lag-imposible nga makopya nga walay lag. Kung buhaton naton kini nga dungan, kini usab magpahinay sa panguna nga base ug dili kita makakuha bisan unsang mga kadaugan.

Sa HTAP, lahi ang pagtrabaho sa tanan - parehas nga data store ang gigamit para sa transactional load gikan sa mga aplikasyon, ug para sa analytical nga mga pangutana nga dugay mahuman. Kung ang datos naa sa RAM, ang analytical nga mga pangutana gipatuman nga mas paspas, ug ang server nga adunay database dili kaayo puno (sa aberids).

In-memorya nga arkitektura alang sa mga serbisyo sa web: mga sukaranan sa teknolohiya ug mga prinsipyo

Ang usa ka hybrid nga pamaagi nagguba sa bungbong tali sa pagproseso sa transaksyon ug analytics. Kung maghimo kami mga analytics sa parehas nga pagtipig, nan ang mga analitikal nga pangutana gilunsad sa data gikan sa RAM. Mas tukma sila, mas masabtan ug igo.

Paghiusa sa mga solusyon sa In-Memory

Usa ka (medyo) yano nga paagi - pagpalambo sa tanan gikan sa scratch. Gitipigan namon ang data sa disk ug gitipigan ang init nga datos sa memorya. Nakatabang kini nga mabuhi ang mga pag-reboot o pagkawala sa server.

Adunay duha ka nag-unang mga senaryo sa trabaho dinhi kung ang data gitipigan sa disk. Sa una, gusto namon nga makalahutay sa mga pag-crash o regular nga pag-reboot sa cluster o mga bahin - gusto namon nga gamiton kini ingon usa ka yano nga database. Sa ikaduha nga senaryo, kung adunay daghan kaayo nga datos, ang uban niini naa sa panumduman.

Kung dili posible nga matukod ang tanan gikan sa wala, posible nga i-integrate ang In-Memory sa usa ka na kasamtangan nga arkitektura. Apan dili tanan nga mga solusyon sa In-Memory ang angay alang niini. Adunay tulo ka mandatory nga kondisyon. Ang In-Memory nga solusyon kinahanglang mosuporta:

  • standard nga paagi sa pagkonektar sa database nga mahimutang sa ilawom niini (pananglitan, MySQL);
  • usa ka standard nga pangutana nga pinulongan, aron dili masulat pag-usab ug usbon ang lohika sa interaksyon sa storage;
  • transactional - pagpreserbar sa semantika sa interaksyon.

Kung ang tanan nga tulo ka mga kondisyon matuman, nan ang panagsama posible. Atong ibutang ang In-Memory Data Grid tali sa aplikasyon ug sa database. Karon ang pagsulat sa mga hangyo itugyan ngadto sa nagpahiping database, ug ang pagbasa sa mga hangyo itugyan ngadto sa nagpahiping database kon ang datos wala sa cache.

In-memorya nga arkitektura alang sa mga serbisyo sa web: mga sukaranan sa teknolohiya ug mga prinsipyo

Kung ang paspas nga pag-access sa datos ug ang pagproseso niini hinungdanon kanimo, pananglitan, alang sa analytics sa negosyo, mahimo nimong hunahunaon ang pagpatuman sa In-Memory. Ug alang sa pagpatuman, mahimo nimong gamiton ang duha nga mga pamaagi sa pagdesinyo sa usa ka bag-ong arkitektura.

Source: www.habr.com

Idugang sa usa ka comment