Litšebelisano le mekhoa ea tsona ea ho laola

Litšebelisano

Ts'ebetso ke tatellano ea ts'ebetso ho data e nang le qalo le pheletso.

Ts'ebetso ke ts'ebetso e latellanang ea ts'ebetso ea ho bala le ho ngola. Qetello ea transaction e ka ba ho boloka liphetoho (ho itlama) kapa ho hlakola liphetoho (rollback). Mabapi le database, transaction e na le likopo tse 'maloa tse nkoang e le kopo e le' ngoe.

Litšebelisano li tlameha ho khotsofatsa thepa ea ACID

Atomicity. Ts'ebetso e phethetsoe ka botlalo kapa che ho hang.

Ho lumellana. Ha ho phethoa transaction, lithibelo tse behiloeng ho data (mohlala, lithibelo ho database) ha lia lokela ho tlotsoa. Ho lumellana ho bolela hore tsamaiso e tla fetisoa ho tloha sebakeng se seng se nepahetseng ho ea ho se seng se nepahetseng.

Ho behwa ka thoko. Litšebelisano tse tsamaeang ka tsela e tšoanang ha lia lokela ho susumetsana, mohlala, ho fetola data e sebelisoang ke transaction e 'ngoe. Sephetho sa ho etsa lipehelo tse bapileng se lokela ho tšoana le ha lipalangoang li entsoe ka tatellano.

Moshoelella. Hang ha e etsoa, ​​​​liphetoho ha lia lokela ho lahleha.

Lenane la transaction

Log e boloka liphetoho tse entsoeng ke litšebelisano, e netefatsa atomicity le botsitso ba data ha ho ka etsahala hore sistimi e hlolehe.

Log e na le litekanyetso tseo data e neng e e-na le tsona pele le ka mor'a hore e fetoloe ke transaction. Leano la ho ngola esale pele le hloka ho kenyelletsa lintlha tse mabapi le boleng ba pele pele ho qala, le ka boleng ba ho qetela kamora hore thekiso e phetheloe. Ha tsamaiso e ema ka tšohanyetso, database e bala log in the reverse order ebe e hlakola liphetoho tse entsoeng ke litšebelisano. Kamora ho kopana le transaction e sitisitsoeng, database ea e etsa mme e etsa liphetoho mabapi le eona ho log. Ho ba mmuso nakong ea ho hloleha, database e bala logi ka tatellano ea pele mme e khutlisa liphetoho tse entsoeng ke litšebelisano. Ka tsela ena, botsitso ba litšebelisano tse seng li entsoe le atomicity ea transaction e sitisitsoeng e bolokiloe.

Ho etsa hape ts'ebetso e hlōlehileng ha hoa lekana bakeng sa ho hlaphoheloa.

Mohlala. Mosebelisi o na le $500 akhaonteng ea hae mme mosebelisi o etsa qeto ea ho e ntša ATM. Litšebelisano tse peli li ntse li tsoela pele. Ea pele e bala boleng ba ho leka-lekana 'me haeba ho na le chelete e lekaneng ho leka-lekana, e fana ka chelete ho mosebedisi. Ea bobeli e tlosa chelete e hlokahalang ho tloha ho tekanyo. Ha re re tsamaiso e ile ea senyeha 'me ts'ebetso ea pele e ile ea hlōleha, empa ea bobeli e ile ea hlōleha. Tabeng ena, re ke ke ra boela ra fana ka chelete ho mosebedisi ntle le ho khutlisetsa tsamaiso boemong ba eona ba pele ka tekanyo e ntle.

Maemo a insulation

Bala Boitlamo

The Dirty Read bothata ke hore transaction e ka bala sephetho sa lipakeng tsa transaction e 'ngoe.

Mohlala. Lebelo la pele la tekanyo ke $0. T1 e eketsa $50 ho chelete ea hau. T2 e bala boleng ba tekanyo ($ 50). T1 e lahla liphetoho ebe e tsoa. T2 e tsoela pele ka ts'ebetso e nang le data e fosahetseng ea tekanyo.

Tharollo ke ho bala data e tsitsitseng (Read Committed), e thibelang ho bala data e fetotsoeng ke transaction. Haeba transaction A e fetotse sete e itseng ea data, joale transaction B, ha u fumana data ena, e qobelloa ho emela hore transaction A e phethe.

Bala ka Pheta-pheta

Lahlehileng Updates bothata. T1 e boloka liphetoho holim'a liphetoho tsa T2.

Mohlala. Chelete ea pele ea ho leka-lekana ke $0 'me litšebelisano tse peli ka nako e le' ngoe li tlatsa chelete e setseng. T1 le T2 li bala chelete e setseng ea $0. T2 ebe e eketsa $200 ho $0 ebe e boloka sephetho. T1 e eketsa $100 ho $0 mme e boloka sephetho. Sephetho sa ho qetela ke $100 ho fapana le $300.

Bothata ba ho bala bo sa pheteheng. Ho bala data e tšoanang khafetsa ho khutlisa boleng bo fapaneng.

Mohlala. T1 e bala boleng ba tekanyo ea $0. T2 ebe e eketsa $50 ho balance ebe e qetella. T1 e bala lintlha hape mme e fumana ho se lumellane le sephetho se fetileng.

Repeatable Read e netefatsa hore 'malo oa bobeli o tla khutlisa sephetho se tšoanang. Lintlha tse baloang ke transaction e le 'ngoe li ke ke tsa fetoloa ho tse ling ho fihlela transaction e phethiloe. Haeba transaction A e balile sete e itseng ea data, joale transaction B, ha u fumana data ena, e qobelloa ho emela hore transaction A e phethe.

Ho bala ho hlophisitsoeng (Serializable)

Phantom Bala bothata. Lipotso tse peli tse khethang data ho latela maemo a itseng li khutlisa boleng bo fapaneng.

Mohlala. T1 e kopa palo ea basebelisi bohle bao tekanyo ea bona e fetang $0 empa e le ka tlase ho $100. T2 e hula $1 ho mosebelisi ea salletseng $101. T1 e fana ka kopo hape.

Ho bala ho laetsoeng (Serializable). Litšebelisano li etsoa ka tatellano e felletseng. E thibetsoe ho nchafatsa kapa ho eketsa lirekoto tse oelang tlas'a maemo a kopo. Haeba transaction A e kopile data ho tsoa tafoleng eohle, tafole eohle e hatsetsoa bakeng sa lits'ebetso tse ling ho fihlela transaction A e phethela.

Mohlophisi

E beha tatellano eo lits'ebetso li lokelang ho etsoa ka eona nakong ea lipapatso tse bapileng.

E fana ka boemo bo itseng ba ho itšehla thajana. Haeba sephetho sa ts'ebetso ha se itšetlehe ka tatellano ea bona, joale ts'ebetso e joalo e fetoha (Permutable). Lits'ebetso tsa ho bala le lits'ebetso ho data e fapaneng lia fetoha. Ts'ebetso ea ho bala-ho ngola le ho ngola ha e fokotsehe. Mosebetsi oa mohlophisi ke ho kenya tšebetsong lipehelo tse bapisitsoeng e le hore sephetho sa ts'ebetso se lekane le ts'ebetso ea tatellano ea mesebetsi.

Mekhoa ea ho laola mesebetsi e tšoanang (Concurrency Control)

Ho ba le tšepo ho itšetlehile ka ho lemoha le ho rarolla likhohlano, ho hloka tšepo ho thehiloe ho thibeleng likhohlano hore li se ke tsa hlaha.

Ka mokhoa o nang le tšepo, basebelisi ba bangata ba na le likopi tsa data tseo ba nang le tsona. Motho oa pele ea tla qeta ho hlophisa o boloka liphetoho, ha ba bang ba tlameha ho kopanya liphetoho. Algorithm e nang le tšepo e lumella likhohlano hore li etsahale, empa sistimi e tlameha ho hlaphoheloa khohlanong.

Ka mokhoa oa ho hloka tšepo, mosebelisi oa pele oa ho hapa data o thibela ba bang ho fumana data. Haeba likhohlano li sa tloaeleha, ke bohlale ho khetha leano le nang le tšepo, kaha le fana ka boemo bo phahameng ba ho lumellana.

Ho notlela

Haeba transaction e le 'ngoe e notletse data, joale litšebelisano tse ling li tlameha ho ema ho fihlela li notleloa ha li fihlella data.

Sebaka se ka koaheloa ho database, tafole, mola, kapa tšobotsi. Shared Lock e ka beoa ho data e ts'oanang ka litšebelisano tse 'maloa, e lumella litšebelisano tsohle (ho kenyeletsoa le e e behileng) ho bala, e thibela phetoho le ho ts'oaroa ka mokhoa o ikhethileng. Exclusive Lock e ka hlahisoa ke ts'ebetso e le 'ngoe feela, e lumella ketso efe kapa efe ea thekiso e behang, e thibela liketso life kapa life tsa ba bang.

A deadlock ke boemo boo ho bona li-transaction li qetellang li le boemong bo sa lebelloang bo tšoarellang ka ho sa feleng.

Mohlala. Ts'ebetso ea pele e emetse hore data e nkiloeng ke ea bobeli e lokolloe, ha ea bobeli e emetse hore data e nkiloeng ke ea pele e lokolloe.

Tharollo e nang le tšepo ea bothata ba deadlock e lumella ho fela ho etsahala, empa joale e khutlisa sistimi ka ho khutlisa e 'ngoe ea litšebelisano tse amehang ho putlama.

Li-deadlocks li batloa ka linako tse itseng. E 'ngoe ea mekhoa ea ho lemoha ke ka nako, ke hore, nahana hore ho se ho fetile nako e itseng haeba khoebo e nka nako e telele hore e phethehe. Ha ho se ho fumanwe ho se na nako, e nngwe ya ditransekshene e khutlisetswa morao, e leng se dumellang ditransekshene tse ding tse amehang ho thiba nako hore di phethehe. Khetho ea motho ea hlokofalitsoeng e ka ipapisa le boleng ba litšebelisano kapa maemo a bona a phahameng (Leta-E-shoa le Merero ea ho emela Maqeba).

Ts'ebetso e 'ngoe le e 'ngoe T setempe sa nako se abetsoe TS e nang le nako ea ho qala ha khoebo.

Ema-E-shoa.

haeba TS(Ti) < TS(Tj), joale Ti e emetse, ho seng joalo Ti e khutlela morao 'me e qala hape ka setempe sa nako se tšoanang.

Haeba transaction e nyane e fumane sesebelisoa mme transaction ea khale e kopa sesebelisoa se tšoanang, joale transaction ea khale e lumelloa ho ema. Haeba khoebo ea khale e fumane mohloli, joale transaction e nyane e kopang sesebelisoa e tla khutlisetsoa morao.

Leqeba-mamela.

haeba TS(Ti) < TS(Tj), joale Tj e khutlela morao 'me e qala hape ka setempe sa nako se tšoanang, ho seng joalo Ti emetse.

Haeba khoebo e nyane e fumane sesebelisoa 'me moreki oa khale a kopa sesebelisoa se tšoanang, joale transaction e nyane e tla khutlisetsoa morao. Haeba transaction ea khale e fumane sesebelisoa, joale transaction e nyane e kopang sesebelisoa e lumelloa ho ema. Khetho ea mahlatsipa e ipapisitseng le maemo a pele e thibela li-deadlocks, empa e khutlisetsa morao litšebelisano tse sa koaloang. Bothata ke hore li-transaction li ka khutlisetsoa morao hangata hobane ... khoebo ea khale e ka tšoara sesebelisoa nako e telele.

Tharollo e se nang tšepo ea bothata ba deadlock ha e lumelle transaction hore e qale ho sebetsa haeba ho na le kotsi ea ho emisa nako.

E le ho bona hore na ho na le nako e telele hakae, ho etsoa graph (e emetse kerafo, e emetse-graph), li-vertices tsa eona e leng litšebelisano, 'me metse e lebisitsoe ho tloha litšebelisanong tse emetseng ho lokolloa ha data ho ea ho transaction e nkileng data ena. Ho nkoa hore graphlock e etsahetse haeba graph e na le loop. Ho etsa graph ea ho leta, haholo-holo litsing tsa polokelo ea litaba, ke mokhoa o theko e boima.

Ho notlela ka mekhahlelo e 'meli - ho thibela li-deadlocks ka ho nka lisebelisoa tsohle tse sebelisoang ke khoebo qalong ea thekiso le ho li lokolla qetellong.

Ts'ebetso eohle ea ho thibela e tlameha ho etella pele ea pele ea ho notlolla. E na le mekhahlelo e 'meli - Mokhahlelo o ntseng o hōla, oo li-grips li bokellanang, le Phase ea Shrinking, eo ka eona li-grips li lokolloang. Haeba ho sa khonehe ho hapa e 'ngoe ea lisebelisoa, khoebo e qala hape. Ho ka etsahala hore khoebo e ke ke ea khona ho fumana lisebelisoa tse hlokahalang, mohlala, haeba litšebelisano tse 'maloa li hlōlisana bakeng sa lisebelisoa tse tšoanang.

Boitlamo ba mekhahlelo e 'meli bo netefatsa hore boitlamo bo phethiloe ho likopi tsohle tsa database

Database e 'ngoe le e' ngoe e kenya tlhahisoleseding e mabapi le data e tla fetoloa ho log 'me e arabela mohokahanyi OK (Mokhahlelo oa Voting). Ka mor'a hore bohle ba arabele hantle, mohokahanyi o romela molaetsa o tlamang bohle ho itlama. Kamora ho itlama, li-server li arabela hantle; haeba bonyane e le 'ngoe e sa arabe hantle, mohokahanyi o romella lets'oao ho hlakola liphetoho ho li-server tsohle (Mokhahlelo oa ho Phetha).

Mokhoa oa setempe sa nako

Ts'ebetso ea khale e khutlisetsoa morao ha u leka ho fumana data e amehang ke khoebo e nyane

Phetolelo e 'ngoe le e 'ngoe e fuoa setempe sa nako TS e tsamaellanang le nako ya qalo ya ho phethahatsa. Haeba Ti hola Tj, joale TS(Ti) < TS(Tj).

Ha khoebo e khutlisetsoa morao, e fuoa setempe se secha sa nako. Ntho ka 'ngoe ea data Q e amehang khoebong e tšoailoe ka lileibole tse peli. W-TS(Q) - setempe sa nako sa khoebo e nyane e phethetseng rekoto ka katleho Q. R-TS(Q) - setempe sa nako sa khoebo e nyane haholo e entseng rekoto e baloang ho Q.

Ha khoebo T likopo tsa ho bala data Q Ho na le likhetho tse peli.

haeba TS(T) < W-TS(Q), ke hore, data e ile ea ntlafatsoa ke transaction e nyenyane, joale transaction T rolls back.

haeba TS(T) >= W-TS(Q), ebe ho baloa ho etsoa le R-TS(Q) e fetoha MAX(R-TS(Q), TS(T)).

Ha khoebo T e kopa liphetoho tsa data Q Ho na le likhetho tse peli.

haeba TS(T) < R-TS(Q), ke hore, data e se e baloa ke transaction e nyenyane 'me haeba phetoho e etsoa, ​​​​ho tla hlaha khohlano. Transaction T rolls back.

haeba TS(T) < W-TS(Q), ke hore, transaction e leka ho hlakola boleng bo bocha, transaction T e khutlisetsoa morao. Maemong a mang, phetoho e etsoa le W-TS(Q) eba lekana TS(T).

Ha ho hlokahale kaho ea kerafo e emetseng e turang. Litšebelisano tsa khale li itšetlehile ka tse ncha, kahoo ha ho na li-cycle ho graph ea ho leta. Ha ho na li-deadlocks hobane li-transaction ha li emele empa li khutlisetsoa morao hang-hang. Cascading rollbacks lia khoneha. Haeba Ti pitikolohile le Tj Ke bala data eo ke e fetotseng Ti, joale Tj e boetse e lokela ho khutlela morao. Haeba ka nako e tšoanang Tj e se e entsoe, joale ho tla ba le tlōlo ea molao-motheo oa botsitso.

E 'ngoe ea litharollo tsa cascading rollbacks. Ts'ebetso e phethela tšebetso eohle ea ho ngola qetellong, 'me lik'hamphani tse ling li tlameha ho emela hore ts'ebetso eo e phethehe. Lichelete li emetse ho etsoa pele li baloa.

Thomas ngola molao - phetoho ea mokhoa oa setempe sa nako moo data e ntlafalitsoeng ke moreki e monyane e thibetsoeng hore e se ke ea ngoloa ke e moholo.

Transaction T e kopa liphetoho tsa data Q. Haeba TS(T) < W-TS(Q), ke hore, transaction e leka ho hlakola boleng bo bocha, transaction T ha e khutlisetsoe morao joalo ka mokhoa oa setempe sa nako.

Source: www.habr.com

Eketsa ka tlhaloso