Azụmahịa na usoro njikwa ha

Azụmahịa

Azụmahịa bụ usoro ọrụ na data nwere mmalite na njedebe.

Azụmahịa bụ usoro mmezu nke ọrụ ịgụ na ide. Ọgwụgwụ nke azụmahịa nwere ike ịbụ ịchekwa mgbanwe (kwenye) ma ọ bụ ịkagbu mgbanwe (nlaghachi azụ). N'ihe gbasara nchekwa data, azụmahịa nwere ọtụtụ arịrịọ a na-ewere dị ka otu arịrịọ.

Azụmahịa ga-eju akụrụngwa ACID

Atomity. Azụmahịa ahụ agwụla kpamkpam ma ọ bụ na ọ bụghị ma ọlị.

Nkwenye. Mgbe ị na-emecha azụmahịa, ihe mgbochi ndị amachibidoro na data (dịka ọmụmaatụ, ihe mgbochi na nchekwa data) agaghị emebi. Nkwekọrịta na-egosi na a ga-ebufe usoro ahụ site n'otu steeti ziri ezi gaa na steeti ọzọ ziri ezi.

Nnọpụ iche. Azụmahịa na-aga n'otu n'otu ekwesịghị imetụta ibe ya, dịka ọmụmaatụ, mgbanwe data nke azụmahịa ọzọ na-eji. Nsonaazụ nke imezu azụmahịa ndị yiri ya kwesịrị ịdị ka ma ọ bụrụ na emechara azụmahịa ahụ n'usoro.

Ndogide. Ozugbo emechara, mgbanwe ekwesịghị ịla n'iyi.

ndekọ azụmahịa

Ndekọ ndekọ ahụ na-echekwa mgbanwe ndị azụmahịa mere, na-eme ka atomity na nkwụsi ike nke data na ihe omume ọdịda nke sistemu

Ihe ndekọ ahụ nwere ụkpụrụ nke data ahụ nwere tupu na mgbe ọ gbanwere site na azụmahịa. Atụmatụ ndekọ ederede na-aga n'ihu chọrọ ịgbakwunye ntinye ndekọ banyere ụkpụrụ ndị gara aga tupu mmalite, yana banyere ụkpụrụ ikpeazụ mgbe azụmahịa ahụ mechara. N'ọnọdụ nke nkwụsị mberede nke usoro ahụ, nchekwa data na-agụ akwụkwọ ndekọ na-atụgharị ma kagbuo mgbanwe ndị azụmahịa mere. N'ịbụ ndị zutere azụmahịa kwụsịrị, nchekwa data na-eme ya ma mee mgbanwe gbasara ya na log. N'ịbụ ndị nọ na steeti n'oge ọdịda ahụ, nchekwa data na-agụ akwụkwọ ndekọ aha n'usoro ma weghachite mgbanwe ndị azụmahịa mere. N'ụzọ dị otú a, a na-echekwa nkwụsi ike nke azụmahịa ndị emelarị na atomity nke azụmahịa kwụsịrị.

Naanị ịmegharị azụmahịa ndị dara ada ezughị maka mgbake.

Ọmụmaatụ. Onye ọrụ nwere $500 na akaụntụ ya ma onye ọrụ kpebiri ịdọrọ ya na ATM. Azụmahịa abụọ na-aga n'ihu. Nke mbụ na-agụ uru nguzozi ma ọ bụrụ na enwere ego zuru oke na nguzozi, ọ na-enye onye ọrụ ego ego. Nke abụọ na-ewepụ ego achọrọ na nguzozi. Ka anyị kwuo na sistemụ ahụ dara na ọrụ mbụ dara, mana nke abụọ mere. N'okwu a, anyị enweghị ike ịnyeghachi onye ọrụ ego na-enweghị iweghachi usoro ahụ na ọnọdụ mbụ ya na nguzozi dị mma.

Ọkwa mkpuchi

Gụọ ekwenyere

Nsogbu Dirty Read bụ na azụmahịa nwere ike ịgụ nsonaazụ etiti nke azụmahịa ọzọ.

Ọmụmaatụ. Ọnụ ego nzizi mbụ bụ $0. T1 na-agbakwunye $50 na nguzozi gị. T2 na-agụ uru nguzozi ($50). T1 na-atụfu mgbanwe na ọpụpụ. T2 na-aga n'ihu na-egbu ya site na data nguzozi na-ezighi ezi.

Ihe ngwọta bụ ịgụta data edoziri (Gụọ Committed), nke na-amachibido ịgụ data gbanwere site na azụmahịa. Ọ bụrụ na azụmahịa A gbanwere ụfọdụ data, mgbe ahụ, azụmahịa B, mgbe ị na-enweta data a, a na-amanye ichere maka azụmahịa A iji wuchaa.

Ịgụ ugboro ugboro

Nsogbu mmelite efu. T1 na-echekwa mgbanwe n'elu mgbanwe T2.

Ọmụmaatụ. Ọnụ ego nguzozi mbụ bụ $0 na azụmahịa abụọ n'otu oge na-emejupụta nguzozi. T1 na T2 gụrụ nha nha $0. T2 wee tinye $200 na $0 wee chekwaa nsonaazụ ya. T1 na-agbakwunye $100 na $0 wee chekwaa nsonaazụ ya. Nsonaazụ ikpeazụ bụ $100 kama $300.

Nsogbu ọgụgụ enweghị ugboro ugboro. Ịgụ otu data ugboro ugboro na-eweghachite ụkpụrụ dị iche iche.

Ọmụmaatụ. T1 na-agụ uru nguzozi nke $0. T2 wee gbakwunye $50 na nguzozi wee mechie. T1 gụkwara data ahụ ọzọ wee chọpụta ọdịiche na nsonaazụ gara aga.

Agụgharị ugboro ugboro na-eme ka o doo anya na agụ nke abụọ ga-eweghachi otu nsonaazụ ahụ. Enweghị ike ịgbanwe data nke otu azụmahịa na-agụ na ndị ọzọ ruo mgbe emechara azụmahịa ahụ. Ọ bụrụ na azụmahịa A agụọla ụfọdụ data, mgbe ahụ, azụmahịa B, mgbe ị na-enweta data a, a na-amanye ichere maka azụmahịa A iji wuchaa.

Ọgụgụ ahaziri (Serializable)

Nsogbu na-agụ Phantom. Ajụjụ abụọ na-ahọrọ data dabere na ọnọdụ ụfọdụ na-eweghachi ụkpụrụ dị iche iche.

Ọmụmaatụ. T1 na-arịọ ọnụọgụ ndị ọrụ niile nguzozi ha karịrị $0 mana ihe na-erughị $100. T2 na-ewepụ $1 n'aka onye ọrụ nwere nguzozi nke $101. T1 weghachiri arịrịọ ahụ.

Ọgụgụ akwadoro (Serializable). A na-eme azụmahịa dị ka usoro zuru oke. Amachibidoro imelite ma ọ bụ tinye ndekọ dabara na usoro nke arịrịọ ahụ. Ọ bụrụ na azụmahịa A rịọrọ data site na tebụl dum, mgbe ahụ, tebụl dum na-ajụ oyi maka azụmahịa ndị ọzọ ruo mgbe azụmahịa A ga-agwụ.

Onye nhazi oge

Na-edobe usoro nke arụ ọrụ kwesịrị ịrụ n'oge azụmahịa ndị yiri ya.

Na-enye ọkwa kewapụrụ iche. Ọ bụrụ na nsonaazụ nke arụmọrụ anaghị adabere n'usoro ha, mgbe ahụ ọrụ ndị dị otú ahụ bụ commutative (Permutable). Ịgụ arụmọrụ na arụmọrụ na data dị iche iche na-ebufe. Ịrụ agụ-ede na ide-ede anaghị ebugharị. Ọrụ nke onye nhazi oge bụ ịhapụ ọrụ nke azụmahịa ndị yiri ya na-arụ ka nsonaazụ igbu ya dị ka usoro mmezu nke azụmahịa.

Usoro maka ịchịkwa ọrụ ndị yiri ya (Concurrency Control)

Enwere nchekwube na-adabere n'ịchọpụta na idozi esemokwu, enweghị nchekwube na-adabere na igbochi esemokwu ịmalite.

Na usoro nchekwube, ọtụtụ ndị ọrụ nwere mbipụta nke data dị n'aka ha. Onye mbụ mezuru edezi na-echekwa mgbanwe ndị ahụ, ebe ndị ọzọ ga-ejikọta mgbanwe ndị ahụ. Algọridim nwere nchekwube na-enye ohere ka esemokwu mee, mana usoro ahụ ga-agbake na esemokwu ahụ.

Site na ụzọ enweghị atụ, onye ọrụ mbụ weghara data ahụ na-egbochi ndị ọzọ ịnata data ahụ. Ọ bụrụ na esemokwu dị ụkọ, ọ bụ ihe amamihe dị na ya ịhọrọ atụmatụ nchekwube, ebe ọ na-enye ọkwa dị elu nke concurrency.

Mkpọchi

Ọ bụrụ na otu azụmahịa ekpochila data, mgbe ahụ, azụmahịa ndị ọzọ ga-echere ruo mgbe emeghere ya mgbe ị na-enweta data ahụ.

Enwere ike machie ngọngọ na nchekwa data, tebụl, ahịrị, ma ọ bụ njiri mara. Enwere ike itinye Mkpọchi Shared na otu data site na ọtụtụ azụmahịa, na-enye ohere azụmahịa niile (gụnyere nke nyere ya) ịgụ, machibido mgbanwe na ijide naanị. Enwere ike ịmanye Mkpọchi pụrụ iche site na naanị otu azụmahịa, na-enye ohere omume ọ bụla nke na-amanye azụmahịa, machibido omume ọ bụla nke ndị ọzọ.

Mkpọchi bụ ọnọdụ ebe azụmahịa na-ejedebe na ọnọdụ na-echere nke na-adịru mgbe ebighị ebi.

Ọmụmaatụ. Azụmahịa mbụ na-echere ka ewepụtara data nke abụọ weghaara, ebe nke abụọ na-echere ka ewepụtara data nke mbụ weghaara.

Ngwọta nwere nchekwube maka nsogbu mkpọchi ọnwụ ahụ na-enye ohere ka mkpọchi ahụ mee, ma na-eweghachi usoro ahụ site n'ịghaghachi azụ otu n'ime azụmahịa ndị metụtara na nkwụsị.

A na-achọ ihe mkpọchi n'oge ụfọdụ. Otu n'ime ụzọ nchọpụta ahụ bụ site na oge, ya bụ, tụlee na nkwụsị nke ọnwụ emeela ma ọ bụrụ na azụmahịa ahụ na-ewe ogologo oge iji wuchaa. Mgbe a chọtara mkpọchi, a na-atụgharị otu n'ime azụmahịa ndị ahụ, na-ekwe ka azụmahịa ndị ọzọ na-etinye aka na mkpọchi ahụ mechaa. Nhọrọ nke onye a tara ahụhụ nwere ike dabere na uru azụmahịa ma ọ bụ ogo ha (atụmatụ Chere-Die na ọnya-echere).

Azụmahịa ọ bụla T a na-ekenye akara oge TS nwere mmalite oge nke azụmahịa.

Chere-Nwuo.

ma ọ bụrụ na TS (Ti) < TS (Tj)mgbe ahụ Ti na-eche, ma ọ bụghị Ti tụgharịa azụ wee malite ọzọ na otu timestamp ahụ.

Ọ bụrụ na azụmahịa na-eto eto enwetala akụ na azụmahịa ochie na-arịọ otu ihe onwunwe, mgbe ahụ, a na-ahapụ azụmahịa ochie ka ọ chere. Ọ bụrụ na azụmahịa ochie enwetala akụrụngwa, mgbe ahụ, azụmahịa nke obere na-arịọ akụrụngwa ahụ ga-atụgharị azụ.

Ọnya-echere.

ma ọ bụrụ na TS (Ti) < TS (Tj)mgbe ahụ Tj tụgharịa azụ wee malite ọzọ na otu timestamp, ma ọ bụghị ya Ti na -eche.

Ọ bụrụ na azụmahịa nke dị obere enwetala akụrụngwa yana azụmahịa meworo agadi na-arịọ otu akụrụngwa, mgbe ahụ, azụmahịa nke obere ga-atụgharị azụ. Ọ bụrụ na azụmahịa ochie enwetala akụrụngwa, mgbe ahụ, azụmahịa nke obere na-arịọ akụrụngwa ahụ ka echere. Nhọpụta onye nrịba ama dabere na ụzọ na-egbochi mkpọchi, mana na-atụgharị azụmahịa na-anaghị emechi emechi. Nsogbu bụ na enwere ike ibugharị azụmahịa azụ ọtụtụ ugboro n'ihi na ... azụmahịa ochie nwere ike ijide akụ ahụ ogologo oge.

Ngwọta enweghị nchekwube maka nsogbu mkpọchi anwụ anaghị ekwe ka azụmahịa malite ime ma ọ bụrụ na enwere ihe egwu nke mkpọchi.

Iji chọpụta nkwụsị nke ọnwụ, a na-arụ eserese (na-echere graph, echere-for-graph), njedebe ya bụ azụmahịa, na akụkụ ya na-eduzi site na azụmahịa na-echere ntọhapụ nke data na azụmahịa nke weghaara data a. A na-ahụta mkpọchi ngwu ka emere ma ọ bụrụ na eserese ahụ nwere loop. Ịmepụta eserese nchere, ọkachasị na ọdụ data ekesa, bụ usoro dị oke ọnụ.

Mkpọchi ụzọ abụọ - na-egbochi mkpọchi ọnwụ site na ijide akụrụngwa niile ejiri azụmaahịa na mmalite nke azụmahịa wee hapụ ha na njedebe.

Ọrụ mgbochi niile ga-eburịrị nke mbụ mkpọghe. Ọ nwere akụkụ abụọ - Na-eto eto na-eto eto, n'oge nke grips na-agbakọta, na shrinking Phase, n'oge a na-ahapụ grips. Ọ bụrụ na ọ gaghị ekwe omume ijide otu n'ime akụrụngwa, azụmahịa ahụ na-amalite ọzọ. Ọ ga-ekwe omume na azụmahịa agaghị enwe ike ịnweta akụrụngwa achọrọ, dịka ọmụmaatụ, ma ọ bụrụ na ọtụtụ azụmahịa na-asọ mpi maka otu ihe onwunwe.

Nkwenye nke nkeji abụọ na-eme ka a mara na emechara ihe ahụ na oyiri nchekwa data niile

Ebe nchekwa data ọ bụla na-abanye ozi gbasara data nke a ga-agbanwe na ndekọ wee zaghachi onye nhazi OK (Voting Phase). Mgbe onye ọ bụla zaghachiri OK, onye nhazi ahụ na-eziga mgbama na-amanye onye ọ bụla ime. Mgbe emechara, sava ahụ zaghachi OK; ọ bụrụ na opekata mpe otu azaghị OK, onye nhazi ahụ na-eziga akara ka ịkagbu mgbanwe na sava niile (Mmecha Oge).

Usoro stampụ oge

A na-eweghachite azụmahịa ochie mgbe ị na-achọ ịnweta data nke obere azụmahịa metụtara

A na-ekenye azụmahịa ọ bụla akara oge TS kwekọrọ na mmalite oge igbu. Ọ bụrụ Ti tọrọ Tjmgbe ahụ TS (Ti) < TS (Tj).

Mgbe akpọgharịrị azụmahịa azụ, a na-ekenye ya akara oge ọhụrụ. Ihe data ọ bụla Q etinyere aka na azụmahịa ahụ nwere akara abụọ. W-TS (Q) - timestamp nke azụmahịa kacha nta nke mezuru ndekọ gafere nke ọma Q. R-TS(Q) - timestamp nke ọdụm azụmahịa nke rụrụ ndekọ agụ na Q.

Mgbe azụmahịa T arịrịọ ịgụ data Q Enwere nhọrọ abụọ.

ma ọ bụrụ na TS (T) < W-TS (Q), ya bụ, a na-emelite data site na obere azụmahịa, wee azụmahịa ahụ T na-atụgharị azụ.

ma ọ bụrụ na TS (T) >= W-TS (Q), mgbe ahụ, a na-agụ akwụkwọ na R-TS(Q) na-aghọ MAX(R-TS(Q), TS(T)).

Mgbe azụmahịa T na-arịọ mgbanwe data Q Enwere nhọrọ abụọ.

ma ọ bụrụ na TS (T) < R-TS(Q), ya bụ, a na-agụrịrị data ahụ site na azụmahịa nke obere ma ọ bụrụ na mgbanwe gbanwere, esemokwu ga-ebilite. Azụmahịa T na-atụgharị azụ.

ma ọ bụrụ na TS (T) < W-TS (Q), ya bụ, azụmahịa ahụ na-agbalị ịdegharịa uru ọhụrụ, azụmahịa T na-atụgharị azụ. N'ọnọdụ ndị ọzọ, a na-eme mgbanwe na W-TS (Q) na-aghọ nhata TS (T).

Ọ dịghị oké ọnụ na-eche eserese owuwu a chọrọ. Azụmahịa ochie na-adabere na ndị ọhụrụ, yabụ enweghị okirikiri na eserese nchere. Enweghị mkpọchi n'ihi na anaghị echere azụmahịa mana tụgharịa ozugbo. Ọ ga-ekwe omume ịghaghachi azụ azụ. Ọ bụrụ Ti akpọrepu pụọ na Tj Agụrụ m data m gbanwere Timgbe ahụ Tj kwesịkwara tụgharịa azụ. Ọ bụrụ n'otu oge ahụ Tj e meelarịrị, mgbe ahụ, a ga-enwe mmebi nke ụkpụrụ nke nkwụsi ike.

Otu n'ime ihe ngwọta maka cascading rollbacks. Azụmahịa na-emecha ọrụ ide ihe na njedebe, na azụmahịa ndị ọzọ ga-echere ka ọrụ ahụ mechaa. Azụmahịa na-echere ka emee tupu agụọ ya.

Thomas dee iwu - mgbanwe nke usoro timestamp nke amachibidoro ka onye okenye degharịa data nke obere azụmahịa.

Azụmahịa T na-arịọ mgbanwe data Q. Ọ bụrụ TS (T) < W-TS (Q), ya bụ, azụmahịa ahụ na-anwa idegharị uru ọhụrụ, azụmahịa T adịghị akpọghachite azụ dịka ọ dị na usoro timestamp.

isi: www.habr.com

Tinye a comment