Okwenziwayo kanye nezindlela zabo zokulawula

Ukuthengiselana

Okwenziwayo wuchungechunge lwemisebenzi kudatha enesiqalo nesiphetho.

Umsebenzi wukwenziwa okulandelanayo kwemisebenzi yokufunda nokubhala. Isiphetho somsebenzi kungaba ukulondoloza izinguquko (ukuzibophezela) noma ukukhansela izinguquko (ukubuyisela emuva). Ngokuphathelene nesizindalwazi, umsebenzi uqukethe izicelo ezimbalwa ezithathwa njengesicelo esisodwa.

Okwenziwayo kufanele kwenelise izakhiwo ze-ACID

I-Atomicity. Umsebenzi uqedwa ngokuphelele noma cha.

Ukuvumelana. Lapho uqedela okwenziwayo, imikhawulo ebekwe kudatha (isibonelo, imigoqo kusizindalwazi) akumele yephulwe. Ukungaguquguquki kusho ukuthi isistimu izodluliswa isuka kwesinye isimo iye kwesinye esilungile.

Ukuzihlukanisa. Okwenziwayo okwenzeka ngokufana akufanele kuthinte omunye komunye, isibonelo, shintsha idatha esetshenziswa ngokunye ukuthenga. Umphumela wokwenza imisebenzi ehambisanayo kufanele ufane nokuthi okwenziwayo kwenziwe ngokulandelana.

Ukusimama. Uma sekwenziwe, izinguquko akufanele zilahleke.

Ilogi yokwenziwe

Ilogi igcina izinguquko ezenziwe ngokwenziwe, iqinisekisa i-athomu nokuzinza kwedatha uma kwenzeka iphutha lesistimu

Ilogi iqukethe amanani idatha eyayinawo ngaphambi nangemuva kokuthi ishintshwe ngokwenziwe. Isu lelogi yokubhala kusengaphambili lidinga ukungeza ukufakwa kwelogi mayelana namanani wangaphambilini ngaphambi kokuqala, kanye namanani okugcina ngemva kokuqedwa kokwenziwayo. Esimeni sokuma kwesistimu kungazelelwe, isizindalwazi sifunda ilogi ngokuhlehla futhi ikhansela izinguquko ezenziwe ngokwenziwe. Ngemva kokuhlangabezana nomsebenzi ophazamisekile, isizindalwazi siyakwenza futhi senze izinguquko ngakho kulogi. Njengoba isesimweni ngesikhathi sokwehluleka, isizindalwazi sifunda ilogi ngokulandelana kwayo futhi ibuyisela izinguquko ezenziwe ngokwenziwe. Ngale ndlela, ukuzinza kokuthengiselana osekwenziwe kakade kanye ne-atomicity yomsebenzi ophazamisekile kugcinwa.

Ukwenza kabusha kalula okwenzekile okuhlulekile akwanele ukuze kutholwe.

Isibonelo. Umsebenzisi uno-$500 ku-akhawunti yakhe futhi umsebenzisi unquma ukuyikhipha ku-ATM. Imisebenzi emibili iyaqhubeka. Eyokuqala ifunda inani lebhalansi futhi uma kunemali eyanele kubhalansi, ikhipha imali kumsebenzisi. Owesibili ukhipha inani elidingekayo kubhalansi. Ake sithi isistimu iphahlazekile futhi ukuhlinzwa kokuqala kwehlulekile, kodwa okwesibili kwenzeka. Kulesi simo, asikwazi ukuphinda sikhiphe imali kumsebenzisi ngaphandle kokubuyisela isistimu esimweni sayo sasekuqaleni ngebhalansi ephozithivu.

Amazinga we-insulation

Funda Uzibophezele

Inkinga Yokufunda Okungcolile ukuthi umsebenzi ungafunda umphumela omaphakathi womunye umsebenzi.

Isibonelo. Inani lebhalansi yokuqala ngu-$0. I-T1 yengeza u-$50 kubhalansi yakho. I-T2 ifunda inani lebhalansi ($50). I-T1 ilahla izinguquko futhi iyaphuma. I-T2 iyaqhubeka nokusebenza ngedatha yebhalansi engalungile.

Isixazululo siwukufunda idatha engaguquki (Read Committed), evimbela ukufundwa kwedatha eshintshwa umsebenzi. Uma okwenziwayo A kuguqule isethi ethile yedatha, khona-ke okwenziwayo B, lapho ufinyelela le datha, kuyaphoqeleka ukuthi kulinde ukuqedwa kokwenziwayo A.

Okufundekayo Okufundekayo

Inkinga Yezibuyekezo Ezilahlekile. I-T1 ilondoloza izinguquko phezu kwezinguquko ze-T2.

Isibonelo. Inani lebhalansi yokuqala ngu-$0 futhi izinkokhelo ezimbili ngesikhathi esisodwa zigcwalisa ibhalansi. I-T1 ne-T2 ifunde ibhalansi engu-$0. I-T2 bese ingeza u-$200 kuya ku-$0 bese ilondoloza umphumela. I-T1 ingeza u-$100 ku-$0 futhi ilondoloza umphumela. Umphumela wokugcina ungu-$100 esikhundleni sika-$300.

Inkinga yokufunda engaphindi. Ukufunda idatha efanayo ngokuphindaphindiwe kubuyisela amanani ahlukene.

Isibonelo. I-T1 ifunda inani lebhalansi lika-$0. I-T2 bese yengeza u-$50 kubhalansi bese iphetha. I-T1 iphinda ifunde idatha futhi ithole ukuphambana nomphumela wangaphambilini.

I-Repeatable Read iqinisekisa ukuthi ukufunda kwesibili kuzobuyisela umphumela ofanayo. Idatha efundwe ngomsebenzi owodwa ayikwazi ukushintshwa kwezinye kuze kuqedwe okwenziwayo. Uma okwenziwayo A kufunde isethi ethile yedatha, khona-ke okwenziwayo B, lapho ufinyelela le datha, kuyaphoqeleka ukuthi kulinde okwenziwayo A kuqedwe.

Ukufundwa oku-odiwe (kungenziwa nge-Serializable)

I-Phantom Ifunda inkinga. Imibuzo emibili ekhetha idatha ngokusekelwe esimweni esithile ibuyisela amanani ahlukene.

Isibonelo. I-T1 icela inombolo yabo bonke abasebenzisi ababhalansi yabo engaphezu kuka-$0 kodwa engaphansi kuka-$100. I-T2 idonsa u-$1 kumsebenzisi onebhalansi engu-$101. I-T1 iphinda ikhiphe isicelo.

Ukufundwa oku-odiwe (Kungenziwa i-Serializable). Okwenziwayo kwenziwa njengokulandelana ngokuphelele. Akuvunyelwe ukubuyekeza noma ukwengeza amarekhodi awela ngaphansi kwemibandela yesicelo. Uma okwenziwayo A kucelile idatha kulo lonke ithebula, lonke ithebula liyamiswa ukuze kuqhutshwe okunye okwenziwayo kuze kuqedwe okwenziwayo A.

Isihleli

Isetha ukuhleleka okufanele ukwenziwa komsebenzi ngesikhathi sokuthenga okufanayo.

Ihlinzeka ngezinga elicacisiwe lokuzihlukanisa. Uma umphumela wokusebenza ungancikile ku-oda labo, khona-ke imisebenzi enjalo iyashintsha (Ivumelekile). Ukufunda nokusebenza kudatha ehlukene kuyashintsha. Imisebenzi yokufunda bhala futhi bhala ayishintshi. Umsebenzi womhleli uwukuxhumanisa imisebenzi eyenziwa yimisebenzi efanayo ukuze umphumela wokwenza ulingane nokwenziwa ngokulandelana kwemisebenzi.

Izindlela zokulawula imisebenzi ehambisanayo (Concurrency Control)

Ukuba nethemba kusekelwe ekutholeni nasekuxazululeni izingxabano, ukungabi nathemba kusekelwe ekuvimbeleni ukungqubuzana ukuthi kuvele.

Ngendlela enethemba, abasebenzisi abaningi banamakhophi edatha abanayo. Umuntu wokuqala ozoqedela ukuhlela ulondoloza izinguquko, kuyilapho abanye kufanele bahlanganise izinguquko. I-algorithm enethemba ivumela ukungqubuzana ukuthi kwenzeke, kodwa isistimu kufanele ibuyele ekungqubuzaneni.

Ngendlela yokuphelelwa ithemba, umsebenzisi wokuqala othwebula idatha uvimba abanye ekutholeni idatha. Uma izingxabano zingavamile, kuwukuhlakanipha ukukhetha isu elinethemba, ngoba linikeza izinga eliphezulu lokuvumelana.

Ukukhiya

Uma okwenziwayo okukodwa kukhiye idatha, khona-ke okunye okwenziwayo kufanele kulinde kuze kuvulwe lapho kufinyelelwa idatha.

Ibhulokhi ingambozwa kusizindalwazi, ithebula, umugqa, noma isibaluli. Ukhiye Wabiwe ungafakwa kudatha efanayo ngokuthengiselana okuningana, uvumela yonke imisebenzi (kuhlanganise naleyo ebekwe yona) ukuthi ifundwe, ivimbela ukuguqulwa kanye nokuthwebula okukhethekile. I-Exclusive Lock ingafakwa ngomsebenzi owodwa kuphela, ivumela noma yiziphi izenzo zenkokhelo ebekiwe, ivimbela noma yiziphi izenzo zabanye.

I-deadlock yisimo lapho okwenziwayo kugcina kusesimweni esilindile esihlala unomphela.

Isibonelo. Umsebenzi wokuqala ulinda ukuthi idatha ethathwe ngowesibili ikhishwe, kanti eyesibili ilinda ukuthi idatha ethathwe owokuqala ikhishwe.

Isixazululo esinethemba lenkinga ye-deadlock sivumela ukuthi i-deadlock yenzeke, kodwa bese ibuyisela isistimu ngokuhlehlisa okunye okwenziwayo okuhilelekile ku-deadlock.

Ama-deadlocks aseshwa ngezikhathi ezithile. Enye yezindlela zokuhlonza iwukuba isikhathi, okungukuthi, cabanga ukuthi ukuvalwa kwenzeke uma umsebenzi uthatha isikhathi eside ukuqedwa. Uma kutholwa i-deadlock, okukodwa kokwenziwe kuyahlehliswa, okuvumela okunye ukuthengiselana okuhilelekile ku-deadlock ukuthi kuqedwe. Ukukhethwa kwesisulu kungase kusekelwe phezu kwevelu yezentengiselwano noma isikhundla sabo esiphezulu (Izikimu zokulinda-Fa kanye ne-Wound-wait).

Konke okwenziwayo T isitembu sesikhathi sabelwe TS equkethe isikhathi sokuqala komsebenzi.

Linda-Fa.

Uma I-TS(Ti) < I-TS(Tj), khona-ke Ti uyalinda, kungenjalo Ti ibuyela emuva futhi iqale futhi ngesitembu sesikhathi esifanayo.

Uma umsebenzi omncane uthole insiza futhi umsebenzi omdala ucela insiza efanayo, khona-ke umsebenzi omdala uvunyelwe ukulinda. Uma umsebenzi omdala uthole insiza, khona-ke okwenziwayo okuncane okucela leyo nsiza kuzobuyiselwa emuva.

Ukulinda inxeba.

Uma I-TS(Ti) < I-TS(Tj), khona-ke Tj ibuyela emuva futhi iqale futhi ngesitembu sesikhathi esifanayo, ngaphandle kwalokho Ti ukulinda.

Uma okwenziwayo okuncane kuthole insiza futhi umsebenzi omdala ucela insiza efanayo, khona-ke okwenziwayo okuncane kuzobuyiselwa emuva. Uma umsebenzi omdala uthole insiza, khona-ke umsebenzi omncane ocela leyo nsiza uvunyelwe ukulinda. Ukukhethwa kwezisulu okusekelwe kuqala kuvimbela ukuvalwa, kodwa kubuyisela emuva okwenziwayo okunganqanyulwanga. Inkinga ukuthi ukuthengiselana kungahlehliswa izikhathi eziningi ngoba... umsebenzi omdala ungase ubambe insiza isikhathi eside.

Isixazululo esingenathemba senkinga ye-deadlock asikuvumeli ukuthengiselana ukuthi kuqale ukwenziwa uma kunengozi ye-deadlock.

Ukuze kutholwe i-deadlock, igrafu iyakhiwa (igrafu yokulinda, igrafu yokulinda), ama-vertices ayimisebenzi, futhi imiphetho iqondiswe kusukela ekuthengeni okulinde ukukhishwa kwedatha kuya okwenziwayo okuthwebule le datha. I-deadlock ibhekwa njengeyenzekile uma igrafu ineluphu. Ukwakha igrafu yokulinda, ikakhulukazi kulwazi olusabalalisiwe, kuyinqubo ebizayo.

Ukukhiya izigaba ezimbili - kuvimbela ukuvalwa ngokuthatha zonke izinsiza ezisetshenziswa ukuthengiselana ekuqaleni komsebenzi bese uzikhulula ekugcineni.

Yonke imisebenzi yokuvimbela kufanele yandulele eyokuqala yokuvula. Inezigaba ezimbili - Isigaba Esikhulayo, lapho ama-grips aqoqana, kanye neSigaba Sokuncipha, lapho kukhishwa khona ama-grips. Uma kungenakwenzeka ukuthwebula enye yezinsiza, umsebenzi uqala phansi. Kungenzeka ukuthi ukuthengiselana ngeke kukwazi ukuthola izinsiza ezidingekayo, isibonelo, uma imisebenzi eminingana iqhudelana ngezinsiza ezifanayo.

Ukuzibophezela kwezigaba ezimbili kuqinisekisa ukuthi isithembiso senziwa kuwo wonke amakhophi esizindalwazi

I-database ngayinye ifaka ulwazi mayelana nedatha ezoshintshwa ibe yilogi futhi iphendule umxhumanisi KULUNGILE (Isigaba Sokuvota). Ngemuva kokuthi wonke umuntu ephendule ngokuthi KULUNGILE, umxhumanisi uthumela isignali ebophezela wonke umuntu ukuthi azibophezele. Ngemva kokuzibophezela, amaseva aphendula ngokuthi KULUNGILE; uma okungenani eyodwa ingaphenduli KULUNGILE, umxhumanisi uthumela isignali ukuze akhansele izinguquko kuwo wonke amaseva (Isigaba Sokuqedela).

Indlela yesitembu sesikhathi

Okwenziwayo okudala kubuyiselwa emuva uma kuzanywa ukufinyelela idatha ehilelekile okwenziwayo okuncane

Okwenziwayo ngakunye kunikezwe isitembu sesikhathi TS elihambisana nesikhathi sokuqala sokwenza. Uma Ti amadala Tj, khona-ke I-TS(Ti) < I-TS(Tj).

Uma okwenziwayo kuhlehliswa, kunikwa isitembu sesikhathi esisha. Into ngayinye yedatha Q obandakanyekayo ekwenziweni kumakwe ngamalebula amabili. I-W-TS(Q) β€” isitembu sesikhathi somsebenzi omncane oqede ngempumelelo irekhodi Q. I-R-TS(Q) β€” isitembu sesikhathi somsebenzi omncane owenze irekhodi elifundiwe Q.

Lapho ukuthengiselana T izicelo zokufunda idatha Q Kunezinketho ezimbili.

Uma I-TS(T) < I-W-TS(Q), okungukuthi, idatha ibuyekezwe ngomsebenzi omncane, kwase kuba umsebenzi T ihlehla.

Uma I-TS(T) >= I-W-TS(Q), bese kufundwa futhi I-R-TS(Q) iyaba MAX(R-TS(Q), TS(T)).

Lapho ukuthengiselana T ucela izinguquko zedatha Q Kunezinketho ezimbili.

Uma I-TS(T) < I-R-TS(Q), okungukuthi, idatha isifundiwe kakade umsebenzi omncane futhi uma ushintsho lwenziwa, ukungqubuzana kuzovela. Okwenziwayo T ihlehla.

Uma I-TS(T) < I-W-TS(Q), okusho ukuthi, umsebenzi uzama ukubhala phezu kwevelu entsha, umsebenzi T ubuyiselwa emuva. Kwezinye izimo, ushintsho lwenziwa futhi I-W-TS(Q) liyalingana I-TS(T).

Akukho ukwakhiwa kwegrafu yokulinda ebizayo edingekayo. Okwenziwayo okudala kuncike kwentsha, ngakho-ke ayikho imijikelezo kugrafu yokulinda. Awekho ama-deadlock ngoba okwenziwayo akulindwa kodwa kuhlehliswa emuva ngokushesha. I-Cascading rollbacks ingenzeka. Uma Ti waginqa futhi Tj Ngifunde idatha engiyishintshile Ti, khona-ke Tj kufanele futhi ihlehle. Uma ngesikhathi esifanayo Tj usuvele uzibophezele, khona-ke kuyoba nokuphulwa kwesimiso sokuzinza.

Esinye sezixazululo ku-cascading rollbacks. Okwenziwayo kuqeda yonke imisebenzi yokubhala ekugcineni, futhi okunye ukuthengiselana kufanele kulinde lowo msebenzi ukuthi uqede. Okwenziwayo kuyalinda ukwenziwa ngaphambi kokuthi kufundwe.

Umthetho wokubhala uThomas - umehluko wendlela yesitembu sesikhathi lapho idatha ebuyekezwa okwenziwayo encane inqatshelwe ukuthi ibhalwe ngaphezulu ngomdala

ukuthengiselana T ucela izinguquko zedatha Q. Uma I-TS(T) < I-W-TS(Q), okungukuthi, umsebenzi uzama ukubhala phezu kwevelu entsha, umsebenzi ongu-T awuhlehliswa ubuyiselwe emuva ngendlela yesitembu sesikhathi.

Source: www.habr.com

Engeza amazwana