Wax kala iibsiga iyo hababkooda xakamaynta

Wareejinta

Wax kala iibsigu waa hawlo taxane ah oo xogta leh bilow iyo dhamaad.

Wax kala iibsigu waa fulinta isku xigxiga ee akhrinta iyo qorista. Dhammaadka wax kala iibsigu waxa uu noqon karaa mid kaydiya isbeddellada (go'aan) ama baabi'inta isbeddellada (dib-u-celinta). Marka la eego xogta xogta, wax kala iibsigu waxa uu ka kooban yahay dhawr codsi oo loola dhaqmo sidii hal codsi.

Ganacsiyadu waa inay qanciyaan guryaha ACID

Atomiity. Wax kala iibsiga waa la dhammaystiray ama lama dhammaystiro.

Joogteynta Markaad dhammaynayso wax kala iibsiga, xaddidaadaha lagu soo rogay xogta (tusaale, caqabadaha ku jira kaydka xogta) waa inaan lagu xadgudbin. Joogteynta waxay tusinaysaa in nidaamka laga wareejinayo gobol sax ah loona wareejin doono xaalad kale oo sax ah.

Karantiil. Wax kala iibsiga oo is barbar socda waa in aanu midba midka kale saamayn, tusaale ahaan, beddelka xogta loo isticmaalo wax kala iibsiga. Natiijada fulinta dhaqdhaqaaqyada isbar-bar yaacaya waa in ay la mid noqotaa haddii wax kala iibsiga si isdaba joog ah loo fuliyay.

Waarta. Marka la sameeyo, isbeddellada waa in aan la lumin.

Diiwaanka wax kala iibsiga

Logu wuxuu kaydiyaa isbeddelada lagu sameeyo wax kala iibsiga, xaqiijiyaa atomity iyo xasiloonida xogta haddii ay dhacdo nidaam guuldarro

Logu waxa uu ka kooban yahay qiyamka ay xogtu lahayd ka hor iyo ka dib marka la beddelo wax kala iibsiga. Istaraatiijiyada log-qoritaanka hore waxay u baahan tahay ku darista log log ku saabsan qiyamkii hore ka hor bilawga, iyo ku saabsan qiyamka ugu dambeeya ka dib marka macaamilka la dhammeeyo. Haddii ay dhacdo in si lama filaan ah uu u joogsado nidaamka, xog-ururintu waxa ay akhrinaysaa diiwaanka sida ay u kala horreeyaan oo ay baabi'iyaan isbeddellada ay sameeyeen wax kala iibsiga. Ka dib markii uu la kulmay macaamil ganacsi oo go'ay, xog-ururinta ayaa fulinaysa oo wax ka beddeleysa buugga. Joogitaanka gobolka wakhtiga guuldarada, xog ururintu waxay akhridaa log in horudhac waxayna soo celisaa isbeddelada ay sameeyeen wax kala iibsiga. Sidan, xasiloonida wax kala iibsiga ee horay loo sameeyay iyo atomity of macaamil ganacsi ee go'ay ayaa la ilaaliyaa.

Si fudud dib-u-fulinta wax kala iibsiga guul daraystay kuma filna soo kabashada.

Tusaale. Isticmaaluhu wuxuu akoonkiisa ugu jiraa $500 oo isticmaaluhu wuxuu go'aansadaa inuu kala baxo ATM-ka. Laba macaamil ganacsi ayaa socda Midka ugu horreeya wuxuu akhriyaa qiimaha dheelitirka iyo haddii ay jiraan lacag ku filan dheelitirka, waxay soo saartaa lacag isticmaalaha. Midda labaad waxay ka jaraysaa qaddarka loo baahan yahay hadhaaga. Aynu nidhaahno nidaamku wuu burburay oo hawlgalkii ugu horreeyay wuu fashilmay, laakiin kii labaad wuu dhacay. Xaaladdan oo kale, dib uma soo saari karno lacagta isticmaalaha iyada oo aan nidaamka ku soo celin xaaladdii asalka ahayd oo leh dheelitirnaan togan.

Heerarka dahaarka

Akhris Waa Go'an

Dhibaatada Akhriska Wasakhdu waa in wax kala iibsigu akhriyi karo natiijada dhexdhexaadka ah ee macaamil kale.

Tusaale. Qiimaha hadhaaga hore waa $0. T1 waxay ku daraysaa $50 hadhaagaaga. T2 wuxuu akhriyaa qiimaha dheelitirka ($50). T1 waxay tuuraysaa isbeddelada iyo bixitaannada. T2 waxay ku sii waddaa fulinta xogta dheelitirka khaldan.

Xalku waa in la akhriyo xogta go'an (Akhri Ballanqaadka), kaas oo mamnuucaya akhrinta xogta lagu beddelay macaamilka. Haddii wax kala beddelashada A ay beddeshay xog gaar ah, ka dibna wax kala beddelashada B, marka la gelayo xogtan, ayaa lagu qasbay inay sugto macaamil ganacsi A si loo dhammaystiro.

Akhris La Celin Karaa

Dhibaatada Cusbooneysii Lumay T1 waxay ku kaydisaa isbeddelada korka ka ah isbeddelada T2.

Tusaale. Qiimaha hadhaaga bilawga ah waa $0 oo laba macaamil ayaa isku mar buuxiya hadhaaga. T1 iyo T2 waxay akhriyaan hadhaaga $0. T2 ayaa markaas ku daray $200 ilaa $0 oo waxay kaydisaa natiijada. T1 wuxuu ku daraa $100 ilaa $0 wuxuuna kaydiyaa natiijada. Natiijada kama dambaysta ahi waa $100 halkii ay ka ahayd $300.

Dhibaato akhris oo aan soo noqnoqon karin. Akhrinta xog isku mid ah si isdaba joog ah waxay soo celisaa qiyam kala duwan.

Tusaale. T1 wuxuu akhriyaa qiimaha dheelitirka ee $0. T2 dabadeed waxay ku daraysaa $50 hadhaaga oo dhamaata. T1 mar kale ayuu akhriyaa xogta wuxuuna helaa farqi natiijadii hore.

Akhriska soo noqnoqda waxay hubisaa in akhrinta labaad ay soo celin doonto isla natiijada. Xogta uu akhriyay hal wax kala beddelasho laguma beddeli karo kuwa kale ilaa macaamilka la dhammeeyo. Haddii wax kala iibsiga A uu akhriyay xog gaar ah, ka dibna wax kala beddelashada B, marka la gelayo xogtan, ayaa lagu qasbay inay sugto macaamil ganacsi A si loo dhammaystiro.

Akhriska la dalbaday (Serializable)

Dhibka akhriska ee Phantom Laba su'aalood oo doorta xogta ku salaysan xaalad gaar ah waxay soo celiyaan qiyam kala duwan.

Tusaale. T1 waxa uu codsadaa tirada dhammaan isticmaalayaasha oo hadhaagahoodu ka badan yahay $0 balse ka yar $100. T2 waxay ka jaraysaa $1 isticmaalaha oo leh baaqi dhan $101. T1 ayaa dib u soo saaraya codsiga

Akhriska la dalbaday (Serializable) Macaamilada waxaa loo fuliyaa si dhammaystiran oo isku xiga. Waa mamnuuc in la cusboonaysiiyo ama lagu daro diiwaannada ku dhaca shuruudaha codsiga. Haddii wax kala iibsiga A uu ka codsado xogta miiska oo dhan, markaa miiska oo dhan waa la qaboojiyay macaamilo kale ilaa macaamil ganacsi uu dhammeeyo.

Jadwalka

Dejiya habka ay tahay in la sameeyo hawlgallada inta lagu jiro wax kala iibsiga barbar socda.

Waxay bixisaa heer go'doon oo go'an. Haddii natiijada hawlgalladu aanay ku xidhnayn amarkooda, markaa hawlgallada noocan oo kale ah waa kuwo wareeg ah (Permutable). Hawlgallada wax-akhrinta iyo hawlgallada xogta kala duwan ayaa ah kuwo isu gudbinaya. Wax-akhris-qorista iyo qorista-qorista hawlgallada ma aha kuwo isu-gudbiya. Hawsha jadwal-hayehu waa in uu dhexda ka galo hawlgallada lagu sameeyo macaamilo isbar-bar socda si natiijada fulintu ay u dhiganto fulinta xidhiidhsan ee macaamilka.

Hababka lagu xakameynayo shaqooyinka isbarbar socda (Concurrency Control)

Rajada wanaagsani waxay ku salaysan tahay ogaanshaha iyo xallinta isku dhacyada, rajo-xumadu waxay ku salaysan tahay ka hortagga colaadaha.

Habka rajada leh, isticmaaleyaal badan ayaa heysta nuqullo xogta ah oo ay isticmaalayaan. Qofka ugu horreeya ee dhammeeya tafatirka wuxuu kaydiyaa isbeddellada, halka kuwa kalena ay tahay inay isku daraan isbeddellada. Algorithm-ka rajo-qabka leh ayaa ogolaada in isku dhacu dhaco, laakiin nidaamku waa inuu ka soo kabsadaa isku dhaca.

Habka niyad-xumada leh, isticmaaleha ugu horreeya ee qabta xogta ayaa ka hortagaya kuwa kale inay helaan xogta. Haddii isku dhacyadu ay naadir yihiin, waxaa habboon in la doorto istaraatiijiyad rajo leh, maadaama ay bixiso heer sare oo is-dhaafsi ah.

Quful

Haddii hal macaamil ganacsi uu leeyahay xog quful, markaas macaamilada kale waa inay sugaan ilaa laga furayo marka la gelayo xogta.

Balooggu waxa lagu dahaadhan karaa xog-ururin, miis, saf, ama sifo. Quful la wadaago ayaa lagu soo rogi karaa xog isku mid ah dhowr xawaalad, waxay ogolaataa dhammaan wax kala iibsiga (oo ay ku jiraan kan soo rogay) inay akhriyaan, waxay mamnuucayaan wax ka beddelka iyo qabashada gaarka ah. Qufulka gaarka ah waxaa lagu soo rogi karaa hal macaamil oo kaliya, wuxuu ogol yahay ficil kasta oo macaamil ganacsi ah, wuxuu mamnuucayaa wax kasta oo ay sameeyaan kuwa kale.

Joogitaanku waa xaalad wax kala iibsigu ku dhamaado xaalad sugaysa oo waarta oo aan xad lahayn.

Tusaale. Macaamilka kowaad wuxuu sugayaa in xogta uu qabtay kan labaad la sii daayo, halka kan labaadna uu sugayo xogta uu qabtay kii hore si loo sii daayo.

Xalka rajo-gelinta leh ee mushkiladda xidhidhaanshaha ayaa u oggolaanaysa in dhimashadu dhacdo, laakiin haddana dib u soo kabsata nidaamka iyada oo dib loo soo celinayo mid ka mid ah wax-is-weydaarsiyada ku lug leh xannibaadda.

Qufullada waxaa la raadiyaa waqtiyo gaar ah. Mid ka mid ah hababka lagu ogaanayo waa waqtiga, taas oo ah, tixgeli in xannibaadku dhacay haddii wax kala iibsiga ay qaadato wakhti dheer si loo dhamaystiro. Marka la helo xannibaad, mid ka mid ah wax kala iibsiga ayaa dib loo rogaa, taas oo u oggolaanaysa macaamilada kale ee ku lug leh xannibaadda in la dhammaystiro. Doorashada dhibbanuhu waxay ku salaysnaan kartaa qiimaha wax kala iibsiga ama kala sareynta (Wait-Die and Wound-wait qorshayaasha).

Wax kala iibsi kasta T shaambada wakhtiga ayaa loo qoondeeyey TS oo ka kooban wakhtiga bilowga ah ee wax kala iibsiga.

Sug-Die.

haddii TS (Ti) < TS (Tj), ka dibna Ti sug, haddii kale Ti dib u rogrogaa oo ku bilaaba mar labaad isla waqti isku mid ah.

Haddii wax kala beddelashada da'da yar ay heshay kheyraad oo macaamil ganacsi hore uu codsado kheyraad isku mid ah, ka dibna macaamilka hore waa la oggol yahay inuu sugo. Haddii wax kala iibsi hore uu helay kheyraad, markaas wax kala iibsiga ka yar ee codsanaya kheyraadka dib ayaa loo rogi doonaa.

Dhaawac-sugi.

haddii TS (Ti) < TS (Tj), ka dibna Tj dib u rogrogaa oo ku bilowda mar kale shaambad isku mid ah, haddii kale Ti sugaya.

Haddii wax kala iibsi ka yar uu helay kheyraad oo macaamil ganacsi hore uu codsado kheyraad isku mid ah, markaas wax kala iibsiga yari dib ayaa loo rogi doonaa. Haddii wax kala iibsiga hore uu helay kheyraad, markaas macaamilka yar ee codsanaya kheyraadka waa loo oggol yahay inuu sugo. Xulashada dhibbanaha ku salaysan mudnaanta waxay ka hortagtaa xidhitaannada, laakiin waxay dib u soo celisaa wax kala iibsiga oo aan xidhnayn. Dhibaatadu waxay tahay in wax kala iibsiga dib loo rogi karo marar badan sababtoo ah... Macaamil hore ayaa laga yaabaa inuu kaydiyo kheyraadka muddo dheer.

Xalka rajo-xumada leh ee mushkiladda xidhitaanku ma ogola in wax kala iibsigu bilaabo fulinta haddii ay jirto khatar shaqo-joojin ah.

Si loo ogaado xannibaadda, garaaf ayaa la dhisay (garaafka sugitaanka, garaafka sugitaanka), geesaha kuwaas oo ah macaamil ganacsi, iyo geesaha waxaa laga hagayaa macaamilada sugaya sii deynta xogta macaamilka qabsaday xogtan. Xidhiidh la'aan ayaa loo arkaa inay dhacday haddii garaafku leeyahay wareeg. Samaynta garaafka sugitaanka, gaar ahaan kaydadka xogta ee la qaybiyey, waa habraac qaali ah.

Quful laba-waji ah - waxay ka hortagtaa xidhitaannada iyadoo la wareegaysa dhammaan agabka loo isticmaalay wax kala iibsiga bilawga macaamilka oo sii daaya dhammaadka

Dhammaan hawlgallada xannibaadda waa inay ka horreeyaan furitaanka ugu horreeya. Waxay leedahay laba weji - Koritaanka Wajiga, inta lagu jiro xilliga qaboojinta, iyo Wajiga yaraanta, inta lagu jiro xilliga qaboojinta la sii daayo. Haddii aysan suurtagal ahayn in la qabsado mid ka mid ah ilaha, wax kala iibsiga ayaa bilaabmaya mar kale. Waxaa suurtogal ah in wax kala iibsigu aanu awoodin inuu helo agabka loo baahan yahay, tusaale ahaan, haddii dhawr macaamil u tartamaan agab isku mid ah.

Ballanqaad laba weji ah ayaa hubinaya in ballan-qaadku lagu fuliyay dhammaan nuqullada xogta

Xog-ururin kastaa waxa ay gelisaa macluumaadka ku saabsan xogta lagu beddeli doono log-ka oo ay uga jawaabto isku-duwaha OK (Wejiga Codbixinta). Kadib marka qof kastaa ka jawaabo OK, isuduwaha ayaa soo diraya calaamad muujinaysa in qof walba uu sameeyo. Ka dib marka la sameeyo, adeegayaashu waxay ku jawaabaan OK; haddii ugu yaraan mid ka mid ah uusan ka jawaabin OK, ka dib iskuduwaha ayaa soo diraya calaamad si uu u tirtiro isbeddelada dhammaan server-yada (Wejiga Dhameystirka).

Habka wakhtiga shambabada

Macaamil hore ayaa dib loo rogaa marka la isku dayayo in la galo xogta ku lug leh wax kala iibsiga ka yar

Wax kala iibsi kasta waxa loo qoondeeyay shaambad wakhti ah TS oo u dhiganta wakhtiga bilowga ah ee fulinta. Hadii Ti ka weyn Tj, ka dibna TS (Ti) < TS (Tj).

Marka wax kala iibsiga dib loo rogo, waxaa loo qoondeeyay shaambad cusub. Shay kasta oo xog ah Q ku lug leh wax kala iibsiga waxa lagu calaamadeeyay laba calaamadood. W-TS(Q) - timestamp ee macaamilka ugu da'da yar ee si guul leh u dhammaystiray rikoodhkii dhammaaday Q. R-TS(Q) - timestamp ee macaamilka ugu da'da yar ee sameeyay diiwaanka akhrinta Q.

Marka wax kala iibsiga T codsiyada akhrinta xogta Q Waxaa jira laba ikhtiyaar.

haddii TS (T) < W-TS(Q), taas oo ah, xogta waxaa lagu cusboonaysiiyay wax kala beddelasho yar, ka dibna wax kala iibsiga T dib u rogrogaa.

haddii TS (T) >= W-TS(Q), kadibna akhrinta ayaa la sameeyaa iyo R-TS(Q) wuxuu noqonayaa MAX(R-TS(Q), TS(T)).

Marka wax kala iibsiga T codsada isbedel xogta Q Waxaa jira laba ikhtiyaar.

haddii TS (T) < R-TS(Q), taas oo ah, xogta waxaa horay u akhriyay macaamil ganacsi yar oo haddii isbeddel la sameeyo, khilaaf ayaa soo baxaya. Wax kala iibsiga T dib u rogrogaa.

haddii TS (T) < W-TS(Q), taas oo ah, wax kala iibsiga ayaa isku dayaya inuu ku beddelo qiime cusub, wax kala iibsiga T ayaa dib loo rogay. Xaaladaha kale, isbeddelka ayaa la sameeyaa iyo W-TS(Q) noqda mid siman TS (T).

Looma baahna dhismo garaaf sugid qaali ah. Wax kala iibsiga hore waxay ku xidhan yihiin kuwa cusub, markaa ma jiraan wareegyo ku jira garaafka sugitaanka. Ma jiraan wax xannibaad ah sababtoo ah wax kala iibsiga lama sugin laakiin isla markiiba dib ayaa loo rogay. Dib-u-celinta dib-u-celinta waa suurtagal. Hadii Ti giringireen iyo Tj Waxaan akhriyay xogta aan bedelay Ti, ka dibna Tj Waa in sidoo kale dib loo rogo. Haddi isku mar Tj mar hore ayaa la go'aamiyay, markaas waxaa jiri doona xadgudub ku ah mabda'a xasilloonida.

Mid ka mid ah xalalka dib-u-celinta cascading. Wax kala iibsigu wuxuu dhamaystiraa dhammaan hawlgallada qorista dhammaadka, iyo wax kala beddelashada kale waa inay sugaan hawlgalkaas inuu dhammaystiro. Macaamilku waxay sugaan in la sameeyo ka hor inta aan la akhriyin.

Thomas qor qaanuun - kala duwanaansho habka timestamp kaas oo xogta lagu cusboonaysiiyay wax kala iibsiga ka yar laga mamnuucay in mid ka weyn uu dib u qoro

Wax kala iibsiga T codsada isbedel xogta Q. Hadday TS (T) < W-TS(Q), taas oo ah, wax kala iibsiga waxa uu isku dayaa in uu dib u qoro qiime cusub, wax kala iibsiga T dib looma rogin sida habka timestamp.

Source: www.habr.com

Add a comment