Usanifu wa kumbukumbu kwa huduma za wavuti: misingi ya teknolojia na kanuni

Kumbukumbu ya Ndani ni seti ya dhana za kuhifadhi data inapohifadhiwa kwenye RAM ya programu, na diski inatumika kuhifadhi nakala. Katika mbinu za classical, data huhifadhiwa kwenye diski na kumbukumbu huhifadhiwa kwenye cache. Kwa mfano, programu ya wavuti iliyo na nyuma ya usindikaji wa data inaiomba kwenye hifadhi: inaipokea, inaibadilisha, na data nyingi huhamishwa kwenye mtandao. Katika Kumbukumbu, mahesabu hutumwa kwa data - kwa uhifadhi, ambapo husindika na mtandao umejaa chini.

Shukrani kwa usanifu wake, Katika Kumbukumbu huharakisha upatikanaji wa data kwa mara kadhaa, na wakati mwingine hata maagizo ya ukubwa, kwa kasi zaidi. Kwa mfano, wachambuzi wa benki wanataka kuona katika maombi ya uchambuzi ripoti ya mikopo iliyotolewa katika mienendo kwa siku kwa mwaka jana. Mchakato huu utachukua dakika kwenye DBMS ya kawaida, lakini kwa Kumbukumbu ya Ndani itaonekana mara moja. Hii ni kwa sababu mbinu hiyo hukuruhusu kuhifadhi habari nyingi zaidi na huhifadhiwa kwenye RAM "karibu". Programu haina haja ya kuomba data kutoka kwa gari ngumu, upatikanaji wa ambayo ni mdogo na mtandao na kasi ya disk.

Ni uwezekano gani mwingine unaopatikana na In-Memory na hii ni mbinu ya aina gani? Vladimir Pligin - mhandisi katika GridGain. Nyenzo hii ya ukaguzi itakuwa muhimu kwa wasanidi programu wa wavuti ambao hawajafanya kazi na Kumbukumbu na wanataka kujaribu, au wanapenda mitindo ya kisasa ya ukuzaji wa programu na muundo wa usanifu.

Kumbuka. Nakala hiyo inategemea nakala ya ripoti ya Vladimir kwenye #GetIT Conf. Kabla ya kuanzishwa kwa kujitenga, tulifanya mara kwa mara mikutano na mikutano kwa watengenezaji huko Moscow na St. Petersburg: tulijadili mwenendo, masuala ya maendeleo ya sasa, matatizo na ufumbuzi wao. Haiwezekani kufanya mkutano sasa, lakini ni wakati wa kushiriki nyenzo muhimu kutoka kwa zamani.

Nani anatumia In-Memory na jinsi gani

Kumbukumbu ya Ndani mara nyingi hutumika ambapo mwingiliano wa haraka wa mtumiaji au usindikaji wa kiasi kikubwa cha data unahitajika.

  • Mabenki tumia In-Memory, kwa mfano, ili kupunguza ucheleweshaji wateja wanapotumia maombi au kuchanganua mteja kabla ya kutoa mkopo.
  • Fintech hutumia Kumbukumbu ya Ndani ili kuboresha utendakazi wa huduma na maombi kwa benki zinazotoa uchakataji na uchanganuzi wa data. 
  • Kampuni za bima: kukokotoa hatari, kwa mfano, kwa kuchanganua data ya mteja kwa miaka kadhaa.
  • Makampuni ya vifaa. Wanachakata data nyingi, kwa mfano, kukokotoa njia bora za usafirishaji wa mizigo na abiria na maelfu ya vigezo, na kufuatilia hali ya usafirishaji.
  • Rejareja. Suluhu za Kumbukumbu husaidia kuhudumia wateja haraka na kuchakata habari nyingi: usafirishaji, ankara, miamala, uwepo wa maelfu ya bidhaa kwenye ghala, na kuandaa ripoti za uchanganuzi.
  • Π’ IOT Kumbukumbu ya Ndani inachukua nafasi ya hifadhidata za jadi.
  • Dawa makampuni hutumia In-Memory, kwa mfano, kupanga kupitia mchanganyiko wa nyimbo za dawa. 

Nitakuambia mifano michache ya jinsi wateja wetu wanavyotumia suluhu za Ndani ya Kumbukumbu na jinsi unavyoweza kuzitekeleza wewe mwenyewe.

Kumbukumbu kama hifadhi ya msingi

Mmoja wa wateja wetu ni msambazaji mkubwa wa vifaa vya kisayansi vya matibabu kutoka Marekani. Wanatumia suluhisho la Kumbukumbu kama hifadhi yao kuu ya data. Data zote zimehifadhiwa kwenye diski, na sehemu ndogo ya data ambayo hutumiwa kikamilifu huwekwa kwenye RAM. Mbinu za kufikia hifadhi ni za kawaida - GDBC (Kiunganishi cha Hifadhidata ya Jumla) na lugha ya maswali ya SQL.

Usanifu wa kumbukumbu kwa huduma za wavuti: misingi ya teknolojia na kanuni

Kwa pamoja hii inaitwa Hifadhidata ya Ndani ya Kumbukumbu (IMDB) au Hifadhi ya Kumbukumbu ya Kati. Darasa hili la suluhisho lina majina mengi, haya sio pekee. 

Vipengele vya IMDB:

  • Data ambayo imehifadhiwa katika Kumbukumbu na kupatikana kupitia SQL ni sawa na katika mbinu nyingine. Zimesawazishwa, njia pekee ya uwasilishaji, njia ya kushughulikia ni tofauti. Muamala hufanya kazi kati ya data.

  • IMDB ina kasi zaidi kuliko hifadhidata za uhusiano kwa sababu ni haraka kupata habari kutoka kwa RAM kuliko kutoka kwa diski. 
  • Kanuni za uboreshaji wa ndani zina maagizo machache.
  • IMDB zinafaa kwa ajili ya kudhibiti data, matukio na miamala katika programu.

IMDB zinaauni ACID kwa kiasi: Atomicity, Consistency, na Kutengwa. Lakini haziungi mkono "uimara" - wakati nguvu imezimwa, data yote inapotea. Ili kutatua tatizo, unaweza kutumia snapshots - "snapshot" ya hifadhidata, sawa na hifadhidata ya hifadhidata kwenye diski kuu, au rekodi ya shughuli (magogo) kurejesha data baada ya kuwasha upya.

Ili kuunda programu zinazostahimili makosa

Hebu tufikirie usanifu wa kawaida wa programu ya wavuti inayostahimili makosa. Inafanya kazi kama hii: maombi yote yanasambazwa na usawazishaji wa wavuti kati ya seva. Mfumo huu ni dhabiti kwa sababu seva huiga kila moja na kuweka nakala rudufu ikiwa kuna matukio.

Usanifu wa kumbukumbu kwa huduma za wavuti: misingi ya teknolojia na kanuni

Msawazishaji huelekeza maombi yote kutoka kwa kipindi kimoja hadi kwa seva moja. Huu ni utaratibu wa kipindi cha fimbo: kila kipindi kinahusishwa na seva ambapo kinahifadhiwa na kuchakatwa ndani ya nchi. 

Ni nini hufanyika wakati moja ya seva inashindwa?

Usanifu wa kumbukumbu kwa huduma za wavuti: misingi ya teknolojia na kanuni

Huduma haitaathirika kwa sababu usanifu umenakiliwa. Lakini tutapoteza sehemu ndogo ya vipindi vya seva iliyokufa. Na wakati huo huo, watumiaji ambao wamefungwa kwenye vikao hivi. Kwa mfano, mteja anaweka agizo na ghafla anamtupa nje ya ofisi. Hatakuwa na furaha wakati anaingia tena na kupata kwamba kila kitu kitatakiwa kufanywa tena.

Programu ya wavuti inahitajika ili kusaidia idadi kubwa ya watumiaji na sio kupunguza kasi ili waweze kufanya kazi kwa raha. Lakini ikiwa imekataliwa, kwa kila ombi linalofuata wakati inachukua kuwasiliana na duka la kikao itaongezeka. Hii huongeza wastani wa kusubiri kwa watumiaji wengine. Lakini hawataki kungoja zaidi ya walivyozoea.

Tatizo hili linaweza kutatuliwa kama mteja wetu mwingine, mtoa huduma mkubwa wa PASS kutoka Marekani. Inatumia Kumbukumbu ya Ndani kuunganisha vipindi vya wavuti. Ili kufanya hivyo, inazihifadhi sio ndani, lakini katikati - kwenye nguzo ya Kumbukumbu. Katika kesi hii, vipindi vinapatikana kwa kasi zaidi kwa sababu tayari viko kwenye RAM.

Usanifu wa kumbukumbu kwa huduma za wavuti: misingi ya teknolojia na kanuni

Seva inapoacha kufanya kazi, kisawazisha hutuma maombi kutoka kwa seva iliyoanguka hadi kwa seva zingine, kama katika usanifu wa kawaida. Lakini kuna tofauti muhimu: vipindi huhifadhiwa katika nguzo ya Kumbukumbu na seva zina ufikiaji wa vipindi vya seva iliyoanguka.

Usanifu huu huongeza uvumilivu wa makosa ya mfumo mzima. Zaidi ya hayo, inawezekana kuachana na utaratibu wa kikao cha fimbo kabisa.

Usindikaji wa Uchanganuzi wa Muamala Mseto (HTAP)

Kwa kawaida, mifumo ya shughuli na uchambuzi huwekwa tofauti. Wanapojitenga, msingi kuu huja chini ya mzigo. Kwa usindikaji wa uchanganuzi, data inanakiliwa kwa nakala ili usindikaji wa uchanganuzi usiingiliane na michakato ya shughuli. Lakini kunakili hutokea kwa lag-haiwezekani kuiga bila lag. Ikiwa tutafanya hivi kwa usawa, pia itapunguza msingi mkuu na hatutapata ushindi wowote.

Katika HTAP, kila kitu hufanya kazi tofauti - hifadhi sawa ya data hutumiwa kwa mzigo wa shughuli kutoka kwa programu, na kwa maswali ya uchambuzi ambayo inaweza kuchukua muda mrefu kukamilika. Wakati data iko kwenye RAM, maswali ya uchanganuzi hutekelezwa haraka, na seva iliyo na hifadhidata haijapakiwa (kwa wastani).

Usanifu wa kumbukumbu kwa huduma za wavuti: misingi ya teknolojia na kanuni

Mbinu mseto hubomoa ukuta kati ya uchakataji wa muamala na uchanganuzi. Ikiwa tutafanya uchanganuzi kwenye hifadhi sawa, basi hoja za uchanganuzi huzinduliwa kwenye data kutoka RAM. Wao ni sahihi zaidi, wanaoweza kufasiriwa zaidi na wa kutosha.

Ujumuishaji wa suluhisho za Kumbukumbu

Njia rahisi (kiasi) - kuendeleza kila kitu kutoka mwanzo. Tunaweka data kwenye diski na kuhifadhi data moto kwenye kumbukumbu. Hii husaidia kuokoa seva kuwashwa tena au kukatika.

Kuna hali mbili kuu zinazofanya kazi hapa wakati data imehifadhiwa kwenye diski. Katika ya kwanza, tunataka kunusurika katika ajali au kuwashwa upya mara kwa mara kwa nguzo au sehemu - tunataka kuitumia kama hifadhidata rahisi. Katika hali ya pili, wakati kuna data nyingi, baadhi yake ni katika kumbukumbu.

Ikiwa haiwezekani kuunda kila kitu kutoka mwanzo, inawezekana kujumuisha Kumbukumbu ya ndani kwenye kumbukumbu tayari. usanifu uliopo. Lakini sio suluhisho zote za Kumbukumbu zinafaa kwa hili. Kuna masharti matatu ya lazima. Suluhisho la Kumbukumbu lazima liunge mkono:

  • njia ya kawaida ya kuunganisha kwenye hifadhidata ambayo itakuwa iko chini yake (kwa mfano, MySQL);
  • lugha ya kawaida ya swala, ili usiandike tena na kubadilisha mantiki ya mwingiliano na hifadhi;
  • shughuli - kuhifadhi semantiki ya mwingiliano.

Ikiwa hali zote tatu zinakabiliwa, basi ushirikiano unawezekana. Tunaweka Gridi ya Data ya Kumbukumbu kati ya programu na hifadhidata. Sasa maombi ya uandishi yatakabidhiwa kwa hifadhidata ya msingi, na maombi ya kusoma yatatumwa kwa hifadhidata ya msingi ikiwa data haiko kwenye kache.

Usanifu wa kumbukumbu kwa huduma za wavuti: misingi ya teknolojia na kanuni

Ikiwa ufikiaji wa haraka wa data na usindikaji wake ni muhimu kwako, kwa mfano, kwa uchanganuzi wa biashara, unaweza kufikiria juu ya kutekeleza Kumbukumbu. Na kwa utekelezaji, unaweza kutumia njia zote mbili wakati wa kuunda usanifu mpya.

Chanzo: mapenzi.com

Kuongeza maoni