GnĂŹomhan
Is e malairt sreath de ghnĂŹomhachd air dĂ ta aig a bheil toiseach is deireadh.
Is e malairt a thâ ann an coileanadh sreath de ghnĂŹomhachd leughaidh is sgrĂŹobhaidh. Faodaidh deireadh malairt a bhith an dĂ rna cuid aâ sĂ bhaladh nan atharrachaidhean (dealasach) no aâ cuir dheth na h-atharrachaidhean (rollback). A thaobh stòr-dĂ ta, tha malairt air a dhèanamh suas de ghrunn iarrtasan a tha air an lĂ imhseachadh mar aon iarrtas.
Feumaidh gnothaichean seilbh ACID a shĂ sachadh
Atomity. Tha an gnothach air a chrĂŹochnachadh gu tur no gun a bhith idir.
Co-chòrdadh. Nuair a chuireas tu crĂŹoch air malairt, chan fhaodar na cuingeadan a chuirear air an dĂ ta (mar eisimpleir, cuingeadan san stòr-dĂ ta) a bhriseadh. Tha cunbhalachd aâ ciallachadh gun tèid an siostam a ghluasad bho aon staid cheart gu staid cheart eile.
Leth-oireachd. Cha bu chòir do ghnĂŹomhachdan a tha aâ ruith ann an co-shĂŹnte buaidh a thoirt air a chèile, mar eisimpleir, atharraich an dĂ ta a chleachdas malairt eile. Bu chòir an toradh bho bhith aâ cur an gnĂŹomh ghnothaichean co-shĂŹnte a bhith co-ionann ri mar a bhiodh na gnothaichean air an cur an gnĂŹomh ann an òrdugh.
Seasmhachd. Aon uair âs gu bheil iad air an gealltainn, cha bu chòir atharrachaidhean a chall.
ClĂ r-gnothaich
Bidh an loga aâ stòradh atharrachaidhean air an dèanamh le gnothaichean, aâ dèanamh cinnteach Ă atmhorachd agus seasmhachd dĂ ta ma dhâ fhĂ illig siostam
Anns an log tha na luachan a bha aig an dĂ ta ro agus Ă s deidh dha atharrachadh leis aâ ghnothach. Feumaidh ro-innleachd log sgrĂŹobhaidh air adhart cuir a-steach log a-steach mu luachan a bh âann roimhe ron thoiseach, agus mu luachan deireannach Ă s deidh aâ ghnothach a chrĂŹochnachadh. Ma thachras stad gu h-obann air an t-siostam, bidh an stòr-dĂ ta aâ leughadh an log ann an òrdugh cĂšil agus aâ cuir dheth na h-atharrachaidhean a rinn gnothaichean. Ăs deidh dhaibh tachairt ri gnothach briste, bidh an stòr-dĂ ta ga chuir an gnĂŹomh agus aâ dèanamh atharrachaidhean air aâ loga. Le bhith anns an stĂ it aig Ă m an fhĂ iligeadh, bidh an stòr-dĂ ta aâ leughadh an loga ann an òrdugh air adhart agus aâ tilleadh nan atharrachaidhean a rinn gnothaichean. San dòigh seo, thathas aâ gleidheadh ââââseasmhachd ghnothaichean a chaidh a ghealltainn mar-thĂ agus atmhorachd aâ ghnothaich a chaidh a bhriseadh.
Chan eil dĂŹreach ath-chur an gnĂŹomh gnothaichean a dhâ fhĂ illig gu leòr airson faighinn air ais.
Eisimpleir: Air cunntas an neach-cleachdaidh 500$ Tha an neach-cleachdaidh aâ co-dhĂšnadh an t-airgead a tharraing a-mach Ă inneal ATM. Thèid dĂ ghnothach a dhèanamh. Bidh aâ chiad fhear aâ leughadh aâ chothromachaidh agus, ma tha airgead gu leòr ann, ga thoirt don neach-cleachdaidh. Bidh an dĂ rna fear aâ toirt air falbh an t-suim a tha a dhĂŹth bhon chothromachadh. Abair gu bheil fĂ illigeadh siostaim aâ tachairt agus gu bheil aâ chiad ghnĂŹomhachd aâ fĂ iligeadh, ach gu bheil an dĂ rna fear soirbheachail. Anns aâ chĂšis seo, chan urrainn dhuinn an t-airgead a thoirt don neach-cleachdaidh a-rithist Ă s aonais an siostam a thoirt air ais chun a staid thĂšsail le cothromachadh adhartach.
Ărean insulation
Leugh Dealaichte
Is e an duilgheadas Dirty Read gum faod malairt toradh eadar-mheadhanach malairt eile a leughadh.
eisimpleir. Is e $ 0 an luach cothromachaidh tĂšsail. Bidh T1 aâ cur $50 ris aâ chothromachadh agad. Tha T2 aâ leughadh an luach cothromachaidh ($ 50). Bidh T1 aâ tilgeadh air falbh na h-atharrachaidhean agus aâ dol a-mach. Tha T2 aâ leantainn air adhart le coileanadh le dĂ ta cothromachaidh ceĂ rr.
Is e am fuasgladh dĂ ta stèidhichte a leughadh (Leugh Committed), a tha aâ toirmeasg leughadh dĂ ta air atharrachadh leis aâ ghnothach. Ma tha malairt A air seata dĂ ta sònraichte atharrachadh, an uairsin feumaidh malairt B, nuair a gheibh thu cothrom air an dĂ ta seo, feitheamh gus an tèid gnothach A a chrĂŹochnachadh.
Leughadh ath-aithris
An duilgheadas le Ăšrachaidhean caillte. SĂ bhailidh T1 atharraichean a bharrachd air atharraichean T2.
eisimpleir. Is e aâ chiad luach cothromachaidh $0 agus bidh dĂ ghnothach ag ath-lĂŹonadh aâ chothromachadh aig an aon Ă m. leugh T1 agus T2 cothromachadh $ 0. Bidh T2 an uairsin aâ cur $200 ri $0 agus aâ sĂ bhaladh an toraidh. Bidh T1 aâ cur $100 ri $0 agus aâ sĂ bhaladh an toraidh. Is e an toradh deireannach $ 100 an Ă ite $ 300.
Duilgheadas leughaidh nach gabh ath-aithris. Bidh leughadh an aon dĂ ta a-rithist aâ tilleadh diofar luachan.
eisimpleir. Tha luach cothromachaidh aig T1 de $ 0. Bidh T2 an uairsin aâ cur $50 ris aâ chothromachadh agus aâ crĂŹochnachadh. Bidh T1 aâ leughadh an dĂ ta a-rithist agus aâ lorg eadar-dhealachadh leis an toradh roimhe.
Bidh Leugh Ath-aithris aâ dèanamh cinnteach gun till dĂ rna leughadh an aon toradh. Chan urrainnear dĂ ta a leughas aon ghnothach atharrachadh ann an cuid eile gus an tèid an gnothach a chrĂŹochnachadh. Ma tha malairt A air seata sònraichte de dhĂ ta a leughadh, an uairsin feumaidh malairt B, nuair a gheibh e cothrom air an dĂ ta seo, feitheamh gus an tèid gnothach A a chrĂŹochnachadh.
Leughadh òrdaichte (Serializable)
Phantom Reads duilgheadas. Bidh dà cheist a tha a 'taghadh dà ta stèidhichte air suidheachadh sònraichte a' tilleadh luachan eadar-dhealaichte.
eisimpleir. Tha T1 ag iarraidh an Ă ireamh de luchd-cleachdaidh air fad aig a bheil an cothromachadh nas Ă irde na $0 ach nas lugha na $100. Bidh T2 aâ toirt air falbh $1 bho neach-cleachdaidh le cothromachadh $101. Tha T1 ag ath-fhoillseachadh an iarrtais.
Leughadh òrdaichte (Serializable). Tha gnÏomhan air an cur an gnÏomh mar gu tur sreath. Tha e toirmisgte clà ran Úrachadh no a chur ris a tha fo chumhachan an iarrtais. Ma tha malairt A air dà ta iarraidh bhon chlà r gu lèir, tha an clà r gu lèir reòta airson gnothaichean eile gus an tig gnothach A gu crÏch.
ClĂ r-ama
Aâ suidheachadh an òrdugh anns am bu chòir gnĂŹomhachd a dhèanamh rè gnothaichean co-shĂŹnte.
Aâ toirt seachad ĂŹre shònraichte de dhâ aonaranachd. Mura h-eil toradh gnĂŹomhachd an urra ris an òrdugh aca, tha na h-obraichean sin commutative (Permutable). Tha gnĂŹomhachd leughaidh agus obrachaidhean air diofar dhĂ ta commutative. Chan eil gnĂŹomhan leughadh-sgrĂŹobhaidh agus sgrĂŹobhadh-sgrĂŹobhaidh co-mheasail. Is e obair aâ chlĂ r-ama obair eadar-fhalamhaichte a dhèanamh le gnothaichean co-shĂŹnte gus am bi an toradh buileachaidh co-ionann ri coileanadh ghnothaichean leantalach.
Innealan airson smachd a chumail air obraichean co-shĂŹnte (Concurrency Control)
Tha optimistic stèidhichte air a bhith aâ lorg agus aâ fuasgladh chòmhstri, tha dòchasach stèidhichte air casg a chuir air còmhstri.
Anns an dòigh dòchasach, tha lethbhric den dĂ ta aig grunn luchd-cleachdaidh rim faighinn. Bidh aâ chiad neach a chuireas crĂŹoch air deasachadh aâ sĂ bhaladh nan atharrachaidhean, agus feumaidh an fheadhainn eile na h-atharrachaidhean a chur còmhla. Tha algorithm dòchasach aâ leigeil le còmhstri tachairt, ach feumaidh an siostam faighinn seachad air aâ chòmhstri.
Le dòigh-obrach eu-dòchasach, tha aâ chiad neach-cleachdaidh a ghlac an dĂ ta aâ cur casg air daoine eile an dĂ ta fhaighinn. Ma tha còmhstri tearc, tha e glic an ro-innleachd dòchasach a thaghadh, leis gu bheil e a âtoirt seachad ĂŹre nas Ă irde de concurrency.
Glasadh
Ma tha aon ghnothach air dà ta a ghlasadh, feumaidh gnothaichean eile feitheamh gus an tèid fhosgladh nuair a gheibhear cothrom air an dà ta.
Faodar bloc a chuir thairis air stòr-dĂ ta, clĂ r, sreath no feart. Faodar Lock Co-roinnte a chuir air an aon dĂ ta le grunn ghnothaichean, aâ leigeil leis a h-uile gnothach (aâ toirt a-steach am fear a chuir e an sĂ s) a leughadh, aâ toirmeasg atharrachadh agus glacadh toirmeasgach. Faodar Lock Exclusive a chuir an sĂ s le dĂŹreach aon ghnothach, aâ ceadachadh gnĂŹomhan sam bith den ghnothach sparradh, aâ toirmeasg gnĂŹomhan sam bith le feadhainn eile.
Is e suidheachadh a thâ ann an suidheachadh far a bheil gnothaichean aâ tighinn gu crĂŹch ann an staid ri thighinn a mhaireas gun chrĂŹoch.
eisimpleir. Tha aâ chiad ghnothach aâ feitheamh ris an dĂ ta a chaidh a ghlacadh leis an dĂ rna fear a bhith air a leigeil ma sgaoil, agus tha an dĂ rna fear aâ feitheamh ris an dĂ ta a chaidh a ghlacadh leis aâ chiad fhear a leigeil ma sgaoil.
Tha fuasgladh dòchasach air an duilgheadas stad-stad aâ leigeil leis aâ ghlas-stad tachairt, ach an uairsin aâ faighinn air ais an siostam le bhith aâ toirt air ais aon de na gnothaichean a tha an lĂšib aâ ghlas-stad.
Bithear aâ coimhead airson glasan-glasaidh aig amannan sònraichte. Is e aon de na dòighean lorgaidh le Ăšine, is e sin, smaoinich gu bheil stad-stad air tachairt ma bheir an gnothach ro fhada ri chrĂŹochnachadh. Nuair a lorgar stad-stad, thèid aon de na gnothaichean a thoirt air ais, aâ leigeil le gnothaichean eile a tha an sĂ s anns aâ ghlas a chrĂŹochnachadh. Faodaidh an roghainn neach-fulang a bhith stèidhichte air luach ghnothaichean no an Ă rd-ĂŹre (sgeama feitheamh-Die agus Wound-wait).
A h-uile malairt T tha clĂ r-ama air a shònrachadh TS anns a bheil Ă m tòiseachaidh aâ ghnothaich.
Fuirich - Die.
ma TS(Ti) < TS(Tj), an uairsin Ti feitheamh, air dhòigh eile Ti aâ dol air ais agus aâ tòiseachadh a-rithist leis an aon stampa-ama.
Ma tha malairt òg air goireas fhaighinn agus gu bheil malairt nas sine ag iarraidh an aon ghoireas, faodaidh an gnothach as sine feitheamh. Ma tha malairt nas sine air goireas fhaighinn, thèid an gnothach as òige a dhâ iarras an goireas sin a thoirt air ais.
Leòn-feitheamh.
ma TS(Ti) < TS(Tj), an uairsin Tj aâ dol air ais agus aâ tòiseachadh a-rithist leis an aon stampa-ama, air dhòigh eile Ti feitheamh.
Ma tha malairt nas òige air goireas fhaighinn agus malairt nas sine ag iarraidh an aon ghoireas, thèid an gnothach nas òige a thoirt air ais. Ma tha malairt nas sine air goireas fhaighinn, tha cead aig aâ ghnothach as òige a tha ag iarraidh an goireas sin feitheamh. Bidh taghadh luchd-fulaing stèidhichte air prĂŹomhachas aâ cur casg air glasan-stad, ach aâ toirt air ais gnothaichean nach eil dĂšinte. Is e an duilgheadas a thâ ann gum faodar gnothaichean a thoirt air ais iomadh uair air sgĂ th... faodaidh malairt nas sine an goireas a chumail airson Ăšine mhòr.
Chan eil fuasgladh eu-dòchasach air an duilgheadas stad-stad aâ leigeil le gnothach tòiseachadh air coileanadh ma tha cunnart ann gun tèid stad a chuir air.
Gus glasadh a lorg, thèid graf a thogail (graf feitheimh, graf-feitheimh), agus tha na h-oirean aca nan gnothaichean, agus tha na h-oirean air an stiĂšireadh bho ghnothaichean a tha aâ feitheamh ri sgaoileadh dĂ ta chun ghnothach a ghlac an dĂ ta seo. Thathas den bheachd gu bheil glasadh air tachairt ma tha lĂšb air aâ ghraf. Is e dòigh-obrach daor a thâ ann a bhith aâ togail graf feitheimh, gu sònraichte ann an stòran-dĂ ta sgaoilte.
Glasadh dĂ -ĂŹre - aâ cur casg air glasan-stad le bhith aâ glacadh a h-uile goireas a chleachdas gnothach aig toiseach aâ ghnothaich agus gan leigeil ma sgaoil aig an deireadh
Feumaidh a h-uile gnĂŹomh bacaidh a dhol air adhart ron chiad fhuasgladh. Tha dĂ ĂŹre ann - Ăre FĂ s, nuair a bhios na greimichean aâ cruinneachadh, agus an ĂŹre crĂŹonadh, nuair a thèid na greimichean a leigeil ma sgaoil. Ma tha e do-dhèanta a ghlacadh aon de na goireasan, a 'ghnothach a' tòiseachadh thairis. Tha e comasach nach bi e comasach do ghnothach na goireasan riatanach fhaighinn, mar eisimpleir, ma bhios grunn ghnothaichean aâ farpais airson na h-aon ghoireasan.
Bidh gealltanas dĂ -ĂŹre aâ dèanamh cinnteach gun tèid an gealltanas a chuir gu bĂ s air a h-uile mac-samhail den stòr-dĂ ta
Bidh gach stòr-dĂ ta aâ clĂ radh an dĂ ta a tha ri atharrachadh agus aâ freagairt don cho-òrdanaiche le OK (Ăre Bhòtaidh). Ăs dèidh do gach neach freagairt le OK, cuiridh an co-òrdanaiche comharra a-mach ag iarraidh air a h-uile duine gealltainn. Ăs dèidh aâ gheallaidh, frithealaiche freagair Ceart gu leòr, mura freagair co-dhiĂš aon dhiubh Ceart gu leòr, cuiridh an co-òrdanaiche comharra gus na h-atharrachaidhean a chur dheth gu na frithealaichean uile (Ăre CrĂŹochnachaidh).
Modh stampa-ama
Thèid malairt nas sine a thoirt air ais nuair a thathar aâ feuchainn ri faighinn gu dĂ ta an lĂšib malairt nas òige
Tha clà r-ama air a shònrachadh do gach gnothach TS a rèir à m tòiseachaidh cur gu bà s. Ma tha Ti thairis Tj, an uairsin TS(Ti) < TS(Tj).
Nuair a thèid malairt a thoirt air ais, thèid stampa-ama Ăšr a thoirt dha. A h-uile nĂŹ dĂ ta Q an sĂ s sa ghnothach air a chomharrachadh le dĂ leubail. W-TS(Q) - clĂ r-ama den ghnothach as òige a chuir crĂŹoch air clĂ r gu soirbheachail Q. R-TS(Q) - clĂ r-ama aâ ghnothaich as òige air an do rinn clĂ r leughaidh Q.
Nuair a bhios an gnothach T iarrtasan airson dĂ ta a leughadh Q Tha dĂ roghainn ann.
ma TS(T) < W-TS(Q), is e sin, chaidh an dà ta Úrachadh le malairt nas òige, an uairsin an gnothach T roiligeadh air ais.
ma TS(T) >= W-TS(Q), an uairsin thèid an leughadh a dhèanamh agus R-TS(Q) a 'fàs MAX(R-TS(Q), TS(T)).
Nuair a bhios an gnothach T ag iarraidh atharraichean dĂ ta Q Tha dĂ roghainn ann.
ma TS(T) < R-TS(Q), is e sin, tha an dà ta air a leughadh mu thrà th le malairt nas òige agus ma thèid atharrachadh a dhèanamh, thig còmhstri. GnÏomh T roiligeadh air ais.
ma TS(T) < W-TS(Q), is e sin, bidh an gnothach aâ feuchainn ri luach nas Ăšire a sgrĂŹobhadh thairis, tha malairt T air a thoirt air ais. Ann an cĂšisean eile, tha an t-atharrachadh air a dhèanamh agus W-TS(Q) fĂ s co-ionnan TS(T).
Chan eil feum air togail grafa feitheimh daor. Tha gnothaichean nas sine an urra ri feadhainn nas Ăšire, agus mar sin chan eil cearcallan anns aâ ghraf feitheimh. Chan eil glasan-stad ann oir chan eilear aâ feitheamh ri gnothaichean ach gan toirt air ais sa bhad. Tha e comasach ro-aithrisean cascading. Ma tha Ti roilig air falbh agus Tj Leugh mi an dĂ ta a dh'atharraich mi Ti, an uairsin Tj bu chòir dha tilleadh air ais cuideachd. Ma tha aig an aon Ă m Tj air a ghealltainn mar-thĂ , agus an uairsin bidh briseadh air prionnsapal seasmhachd.
Is e aon de na fuasglaidhean airson a bhith aâ sgaoileadh air ais. Bidh malairt a 'crĂŹochnachadh a h-uile obair sgrĂŹobhaidh aig an deireadh, agus feumaidh gnothaichean eile feitheamh gus an tèid an obair sin a chrĂŹochnachadh. Tha gnothaichean aâ feitheamh ri bhith air an gealltainn mus tèid an leughadh.
Riaghailt sgrÏobhaidh Tòmas - atharrachadh air an dòigh stampa-ama anns a bheil dà ta air Úrachadh le malairt nas òige air a thoirmeasg bho bhith air ath-sgrÏobhadh le fear nas sine
malairt T ag iarraidh atharraichean dĂ ta Q. Ma tha TS(T) < W-TS(Q), is e sin, bidh an gnothach aâ feuchainn ri luach nas Ăšire a sgrĂŹobhadh thairis, chan eil malairt T air a thoirt air ais mar a tha anns aâ mhodh stampa-ama.
Source: www.habr.com
