Gnìomhan agus na dòighean smachd aca

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. Tha $500 aig an neach-cleachdaidh sa chunntas aige agus tha an neach-cleachdaidh a’ co-dhùnadh a tharraing air ais bho ATM. Tha dà ghnothach a’ dol air adhart. Bidh a 'chiad fhear a' leughadh an luach cothromachaidh agus ma tha airgead gu leòr air a 'chothromachadh, bidh e a' toirt airgead don neach-cleachdaidh. Bidh an dàrna fear a 'toirt air falbh an t-suim a tha a dhìth bhon chothromachadh. Canaidh sinn gun do thuit an siostam agus dh’ fhàillig a’ chiad obrachadh, ach rinn an dàrna fear. Anns a 'chùis seo, chan urrainn dhuinn airgead a chuir a-rithist don neach-cleachdaidh gun a bhith a' tilleadh an t-siostam chun a staid thùsail le cothromachadh math.

Ì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’ cuir a-steach fiosrachadh mun dàta a thèid atharrachadh a-steach don log agus a’ freagairt don cho-òrdanaiche OK (Ìre bhòtaidh). Às deidh a h-uile duine freagairt ceart gu leòr, bidh an co-òrdanaiche a ’cur comharra a’ toirt air a h-uile duine gealltainn. Às deidh dhaibh gealltainn, bidh na frithealaichean a’ freagairt ceart gu leòr; mura freagair co-dhiù aon dhiubh ceart gu leòr, an uairsin cuiridh an co-òrdanaiche comharra gus na h-atharrachaidhean air na frithealaichean uile a chuir dheth (Ì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

Cuir beachd ann