Kev ua lag luam thiab lawv cov kev tswj hwm

Kev Sib Tham

Kev hloov pauv yog ib ntu ntawm kev ua haujlwm ntawm cov ntaub ntawv uas muaj qhov pib thiab qhov kawg.

Kev ua lag luam yog kev ua tiav ntawm kev nyeem thiab sau ua haujlwm. Qhov kawg ntawm kev sib pauv tuaj yeem yog txuag cov kev hloov pauv (coj) lossis tshem tawm cov kev hloov pauv (rollback). Nyob rau hauv kev sib raug zoo rau ib tug database, ib qho kev sib pauv muaj ntau qhov kev thov uas raug kho raws li ib qho kev thov.

Kev ua lag luam yuav tsum ua kom tiav cov khoom ACID

Atomicity. Qhov kev sib pauv yog ua tiav tag nrho lossis tsis tag nrho.

Kev sib raug zoo. Thaum ua tiav ib qho kev sib pauv, cov kev txwv rau cov ntaub ntawv (piv txwv li, kev txwv hauv cov ntaub ntawv) yuav tsum tsis txhob ua txhaum. Kev sib raug zoo txhais tau hais tias qhov system yuav raug xa mus los ntawm ib lub xeev raug mus rau lwm lub xeev raug.

Muab cais nyob ib leeg. Kev lag luam uas khiav hauv qhov sib npaug yuav tsum tsis txhob cuam tshuam ib leeg, piv txwv li, hloov cov ntaub ntawv siv los ntawm lwm qhov kev sib pauv. Qhov tshwm sim ntawm kev ua tiav cov kev sib pauv hloov pauv yuav tsum zoo ib yam li yog tias cov kev hloov pauv tau ua raws li ntu ntu.

Sustainability. Thaum cog lus tseg, kev hloov pauv yuav tsum tsis txhob poob.

Daim ntawv ua lag luam

Lub cav khaws cov kev hloov pauv tau ua los ntawm kev hloov pauv, ua kom atomicity thiab ruaj khov ntawm cov ntaub ntawv thaum muaj qhov tsis ua haujlwm

Lub cav muaj cov txiaj ntsig uas cov ntaub ntawv muaj ua ntej thiab tom qab nws tau hloov pauv los ntawm kev hloov pauv. Sau-ua ntej log lub tswv yim yuav tsum tau ntxiv ib lub cav nkag txog cov nqi yav dhau los ua ntej pib, thiab hais txog cov txiaj ntsig kawg tom qab kev sib pauv tiav. Nyob rau hauv qhov kev tshwm sim ntawm ib tug cia li nres ntawm lub system, lub database nyeem cov cav nyob rau hauv thim rov qab kev txiav txim thiab tshem tawm cov kev hloov pauv los ntawm kev lag luam. Tau ntsib ib qho kev cuam tshuam kev lag luam, cov ntaub ntawv khaws cia nws thiab hloov pauv txog nws rau lub cav. Nyob rau hauv lub xeev thaum lub sij hawm tsis ua hauj lwm, lub database nyeem cov cav nyob rau hauv pem hauv ntej kev txiav txim thiab xa rov qab cov kev hloov pauv los ntawm kev lag luam. Txoj kev no, kev ruaj ntseg ntawm kev lag luam uas twb tau cog lus tseg thiab atomicity ntawm kev cuam tshuam kev lag luam raug khaws cia.

Tsuas yog rov ua cov lag luam ua tsis tiav tsis txaus rau kev rov qab los.

Piv txwv. Tus neeg siv muaj $ 500 hauv nws tus account thiab tus neeg siv txiav txim siab rho tawm ntawm lub ATM. Ob qhov kev hloov pauv tau ua tiav. Thawj tus nyeem tus nqi tshuav thiab yog tias muaj nyiaj txaus ntawm qhov nyiaj tshuav, nws muab nyiaj rau tus neeg siv. Qhov thib ob rho tawm qhov xav tau ntawm qhov nyiaj tshuav. Cia peb hais tias lub kaw lus poob thiab thawj qhov haujlwm ua tsis tiav, tab sis qhov thib ob tau ua. Hauv qhov no, peb tsis tuaj yeem rov muab nyiaj rov qab rau tus neeg siv yam tsis tau xa rov qab lub system mus rau nws lub xeev qub nrog qhov nyiaj tshuav zoo.

Rwb thaiv tsev qib

Nyeem Kev cog lus

Qhov teeb meem Dirty Read yog qhov kev lag luam tuaj yeem nyeem cov txiaj ntsig nruab nrab ntawm lwm qhov kev lag luam.

Piv txwv. Tus nqi pib tshuav yog $0. T1 ntxiv $50 rau koj qhov nyiaj tshuav. T2 nyeem tus nqi sib npaug ($50). T1 pov tseg cov kev hloov pauv thiab tawm mus. T2 txuas ntxiv ua tiav nrog cov ntaub ntawv tshuav nyiaj tsis raug.

Txoj kev daws teeb meem yog nyeem cov ntaub ntawv ruaj khov (Nyeem Ua Haujlwm), uas txwv tsis pub nyeem cov ntaub ntawv hloov pauv los ntawm kev hloov pauv. Yog tias kev hloov pauv A tau hloov pauv qee cov ntaub ntawv, ces kev hloov pauv B, thaum nkag mus rau cov ntaub ntawv no, raug yuam kom tos kev hloov pauv A kom tiav.

Rov nyeem dua

Lost Updates teeb meem. T1 txuag cov kev hloov pauv rau saum T2 cov kev hloov pauv.

Piv txwv. Tus nqi pib tus nqi yog $0 thiab ob qho kev lag luam ib txhij ntxiv qhov nyiaj tshuav. T1 thiab T2 nyeem qhov nyiaj tshuav ntawm $0. T2 ces ntxiv $200 rau $0 thiab txuag qhov tshwm sim. T1 ntxiv $100 rau $0 thiab txuag qhov tshwm sim. Qhov kawg tshwm sim yog $100 tsis yog $300.

Unrepeatable nyeem teeb meem. Kev nyeem tib cov ntaub ntawv ntau zaus rov qab muaj qhov sib txawv.

Piv txwv. T1 nyeem tus nqi sib npaug ntawm $0. T2 ces ntxiv $50 rau qhov nyiaj tshuav thiab xaus. T1 nyeem cov ntaub ntawv dua thiab pom qhov tsis sib xws nrog cov txiaj ntsig dhau los.

Repeatable Read xyuas kom meej tias qhov kev nyeem thib ob yuav rov qab tau qhov txiaj ntsig zoo ib yam. Cov ntaub ntawv nyeem los ntawm ib qho kev hloov pauv tsis tuaj yeem hloov pauv hauv lwm tus kom txog thaum kev sib pauv tiav. Yog tias kev hloov pauv A tau nyeem qee cov ntaub ntawv, ces kev hloov pauv B, thaum nkag mus rau cov ntaub ntawv no, raug yuam kom tos kev hloov pauv A kom tiav.

Kev nyeem ntawv (Serializable)

Phantom Reads teeb meem. Ob cov lus nug uas xaiv cov ntaub ntawv raws li qee yam xwm txheej rov qab muaj txiaj ntsig sib txawv.

Piv txwv. T1 thov tus naj npawb ntawm txhua tus neeg siv uas nws qhov nyiaj tshuav ntau dua $ 0 tab sis tsawg dua $ 100. T2 txiav tawm $1 ntawm tus neeg siv nrog qhov nyiaj tshuav ntawm $101. T1 reissues qhov kev thov.

Kev nyeem ntawv (Serializable). Kev ua lag luam raug ua tiav raws li kev ua tiav. Nws raug txwv tsis pub hloov kho lossis ntxiv cov ntaub ntawv uas poob rau hauv cov nqe lus ntawm kev thov. Yog tias kev hloov pauv A tau thov cov ntaub ntawv los ntawm tag nrho cov lus, ces tag nrho lub rooj yuav khov rau lwm yam kev hloov pauv kom txog thaum kev hloov pauv A tiav.

Teem sijhawm

Teem cov kev txiav txim uas yuav tsum tau ua thaum lub sij hawm sib npaug.

Muab ib theem kev cais tawm. Yog tias qhov tshwm sim ntawm kev ua haujlwm tsis nyob ntawm lawv qhov kev txiav txim, ces cov haujlwm no yog commutative (Permutable). Kev nyeem ntawv thiab kev ua haujlwm ntawm cov ntaub ntawv sib txawv yog kev sib hloov. Kev nyeem-sau thiab sau-sau ua haujlwm tsis yog kev sib hloov. Lub sijhawm teem sijhawm ua haujlwm yog txhawm rau cuam tshuam cov haujlwm ua los ntawm kev sib txuas ua ke kom cov txiaj ntsig ua tiav yog sib npaug rau kev ua tiav ntawm kev hloov pauv.

Mechanisms rau kev tswj cov hauj lwm sib npaug (Concurrency Control)

Kev xav zoo yog los ntawm kev tshawb nrhiav thiab daws qhov tsis sib haum xeeb, kev xav tsis zoo yog los ntawm kev tiv thaiv kev tsis sib haum xeeb.

Nyob rau hauv txoj kev zoo siab, ntau tus neeg siv tau luam tawm cov ntaub ntawv ntawm lawv qhov chaw pov tseg. Thawj tus neeg ua kom tiav kev kho kom tiav txuag cov kev hloov pauv, thaum lwm tus yuav tsum sib koom ua ke cov kev hloov pauv. Ib qho kev zoo siab algorithm tso cai rau kev tsis sib haum xeeb tshwm sim, tab sis lub kaw lus yuav tsum rov qab los ntawm qhov tsis sib haum xeeb.

Nrog rau kev xav tsis zoo, thawj tus neeg siv los ntes cov ntaub ntawv txwv tsis pub lwm tus tau txais cov ntaub ntawv. Yog tias muaj kev tsis sib haum xeeb tsawg, nws yog qhov zoo los xaiv lub tswv yim zoo, vim nws muab qib siab dua ntawm kev sib koom ua ke.

Xauv

Yog tias ib qho kev hloov pauv tau kaw cov ntaub ntawv, ces lwm yam kev hloov pauv yuav tsum tau tos kom txog thaum nws tau xauv thaum nkag mus rau cov ntaub ntawv.

Ib qho thaiv tuaj yeem muab tso rau ntawm cov ntaub ntawv, rooj, kab, lossis tus cwj pwm. Shared Lock tuaj yeem raug yuam rau tib cov ntaub ntawv los ntawm ntau qhov kev lag luam, tso cai rau txhua qhov kev hloov pauv (nrog rau qhov uas tau yuam nws) nyeem, txwv tsis pub hloov kho thiab kev ntes tshwj xeeb. Kev Xauv Tshwj Xeeb tuaj yeem raug yuam los ntawm ib qho kev lag luam nkaus xwb, tso cai rau txhua qhov kev nqis tes ua, txwv tsis pub lwm tus ua.

Lub deadlock yog ib qho xwm txheej uas cov kev lag luam xaus rau hauv lub xeev tseem tos uas kav mus ib txhis.

Piv txwv. Thawj qhov kev hloov pauv tos rau cov ntaub ntawv uas tau ntes los ntawm qhov thib ob yuav raug tso tawm, thaum lub sijhawm thib ob tos rau cov ntaub ntawv raug ntes los ntawm thawj zaug tso tawm.

Ib qho kev daws teeb meem zoo rau qhov teeb meem deadlock tso cai rau lub deadlock tshwm sim, tab sis tom qab ntawd rov qab lub kaw lus los ntawm dov rov qab ib qho ntawm cov kev lag luam koom nrog hauv kev tuag.

Deadlocks raug tshawb nrhiav ntawm qee lub sijhawm. Ib txoj hauv kev tshawb pom yog los ntawm lub sijhawm, uas yog, xav txog tias qhov kev tsis sib haum xeeb tau tshwm sim yog tias qhov kev sib pauv siv sijhawm ntev dhau los ua kom tiav. Thaum pom kev tuag, ib qho ntawm cov kev hloov pauv tau rov qab, tso cai rau lwm yam kev lag luam koom nrog hauv qhov kev tuag kom tiav. Kev xaiv ntawm cov neeg raug tsim txom tuaj yeem ua raws li tus nqi ntawm kev pauv lossis lawv cov laus (Wait-Die thiab Wound-tos schemes).

Txhua qhov kev lag luam T lub sij hawm yog muab TS uas muaj lub sijhawm pib ntawm kev hloov pauv.

Tos-Tuag.

Yog hais tias tus TS (Ti) < TS(Tj), ces Ti tos, txwv tsis pub Ti rolls rov qab thiab pib dua nrog tib lub sij hawm.

Yog hais tias ib tug hluas kev lag luam tau txais cov peev txheej thiab cov kev lag luam laus thov cov peev txheej qub, ces qhov kev hloov pauv qub raug tso cai tos. Yog tias qhov kev lag luam loj dua tau txais cov peev txheej, ces qhov kev lag luam yau uas thov cov peev txheej yuav raug muab rov qab.

Mob-tos.

Yog hais tias tus TS (Ti) < TS(Tj), ces Tj rolls rov qab thiab pib dua nrog tib lub sij hawm, txwv tsis pub Ti tos.

Yog tias qhov kev lag luam hluas tau txais cov peev txheej thiab kev lag luam laus thov cov peev txheej qub, ces qhov kev lag luam yau yuav rov qab. Yog tias qhov kev lag luam loj dua tau txais cov peev txheej, ces qhov kev lag luam yau dua thov kom cov peev txheej tau tso cai tos. Precedence-raws li tus neeg raug xaiv xaiv tiv thaiv deadlocks, tab sis rolls rov qab muas uas tsis yog deadlocked. Qhov teeb meem yog tias kev hloov pauv tuaj yeem thim rov qab ntau zaus vim ... kev lag luam qub tuaj yeem tuav cov peev txheej tau ntev.

Kev daws teeb meem pessimistic rau qhov teeb meem deadlock tsis tso cai rau kev lag luam pib ua tiav yog tias muaj kev pheej hmoo ntawm kev tuag.

Txhawm rau ntes tau tus neeg tuag lawm, ib daim duab kaw (tos duab, tos-rau-kab, thiab cov npoo yog qhia los ntawm kev tso tawm ntawm cov ntaub ntawv uas tau muab cov ntaub ntawv no. Qhov kev tuag raug txiav txim siab tau tshwm sim yog tias daim duab muaj lub voj. Tsim ib daim duab tos, tshwj xeeb tshaj yog nyob rau hauv cov ntaub ntawv xa tawm, yog txheej txheem kim.

Ob-theem locking - tiv thaiv deadlocks los ntawm kev txeeb tag nrho cov peev txheej siv los ntawm kev sib pauv thaum pib ntawm kev sib pauv thiab tso tawm thaum kawg

Txhua qhov thaiv kev ua haujlwm yuav tsum ua ntej qhov qhib qhib thawj zaug. Nws muaj ob theem - Loj hlob theem, thaum lub sij hawm grips sib sau, thiab Shrinking Phase, thaum lub sij hawm cov grips raug tso tawm. Yog tias nws tsis tuaj yeem ntes ib qho ntawm cov peev txheej, kev hloov pauv pib dua. Nws yog qhov ua tau tias kev lag luam yuav tsis tuaj yeem tau txais cov peev txheej xav tau, piv txwv li, yog tias ntau qhov kev sib tw sib tw rau tib cov peev txheej.

Qhov kev cog lus ob-theem ua kom ntseeg tau tias qhov kev cog lus raug ua tiav ntawm txhua qhov kev hloov pauv ntawm cov ntaub ntawv

Txhua lub chaw khaws ntaub ntawv nkag mus rau cov ntaub ntawv hais txog cov ntaub ntawv uas yuav raug hloov mus rau hauv lub cav thiab teb rau tus neeg sib koom tes OK (Phau Ntawv Pov Thawj). Tom qab txhua leej txhua tus tau teb OK, tus neeg saib xyuas xa ib lub teeb liab yuav tsum tau cog lus rau txhua tus. Tom qab kev cog lus, cov servers teb OK; yog tias tsawg kawg ib qho tsis teb OK, ces tus neeg koom tes xa ib lub teeb liab los tshem tawm cov kev hloov pauv rau tag nrho cov servers (Kev Ua tiav Phaj).

Txoj kev teev sijhawm

Ib qho kev lag luam qub yog dov rov qab thaum sim nkag mus rau cov ntaub ntawv cuam tshuam los ntawm kev lag luam hluas

Txhua qhov kev sib pauv tau muab lub sijhawm teev tseg TS sib raug rau lub sijhawm pib ntawm kev tua. Yog Ti laus dua Tj, ces TS (Ti) < TS(Tj).

Thaum ib qho kev hloov pauv rov qab, nws tau muab lub sijhawm tshiab. Txhua yam ntaub ntawv Q koom nrog hauv kev lag luam yog cim nrog ob daim ntawv lo. W-TS (Q) - timestamp ntawm tus yau tshaj kev lag luam uas ua tiav cov ntaub ntawv dhau los Q. R-TS (Q) - timestamp ntawm tus yau tshaj kev lag luam uas tau ua cov ntaub ntawv nyeem rau Q.

Thaum qhov kev hloov pauv T thov kom nyeem cov ntaub ntawv Q Muaj ob txoj kev xaiv.

Yog hais tias tus TS (T) < W-TS (Q), uas yog, cov ntaub ntawv tau hloov kho los ntawm kev ua lag luam hluas, tom qab ntawd kev hloov pauv T rov qab.

Yog hais tias tus TS (T) >= W-TS (Q), ces qhov kev nyeem ntawv yog ua thiab R-TS (Q) yog qhov ua MAX(R-TS(Q), TS(T)).

Thaum qhov kev hloov pauv T thov hloov cov ntaub ntawv Q Muaj ob txoj kev xaiv.

Yog hais tias tus TS (T) < R-TS (Q), uas yog, cov ntaub ntawv twb tau nyeem los ntawm kev lag luam hluas thiab yog tias muaj kev hloov pauv, kev tsis sib haum xeeb yuav tshwm sim. Kev lag luam T rov qab.

Yog hais tias tus TS (T) < W-TS (Q), uas yog, qhov kev sib pauv sim overwrite tus nqi tshiab, kev hloov pauv T yog dov rov qab. Hauv lwm qhov xwm txheej, kev hloov pauv yog nqa tawm thiab W-TS (Q) ua sib npaug TS (T).

Tsis tas yuav siv daim duab kim tos. Cov kev lag luam qub nyob ntawm cov tshiab, yog li tsis muaj cov voj voog nyob hauv daim duab tos. Tsis muaj qhov tsis txaus ntseeg vim tias kev hloov pauv tsis tau tos tab sis dov rov qab tam sim ntawd. Cascading rollbacks yog ua tau. Yog Ti dov mus thiab Tj Kuv nyeem cov ntaub ntawv uas kuv hloov Ti, ces Tj yuav tsum rov qab. Yog tib lub sijhawm Tj twb tau cog lus lawm, ces yuav muaj kev ua txhaum cai ntawm kev ruaj ntseg.

Ib qho kev daws teeb meem rau cascading rollbacks. Ib qho kev lag luam ua tiav tag nrho cov haujlwm sau ntawv thaum kawg, thiab lwm yam kev lag luam yuav tsum tau tos kom tiav qhov haujlwm ntawd. Kev ua lag luam tos kom cog lus ua ntej yuav nyeem.

Thomas sau txoj cai - ib qho kev hloov pauv ntawm lub sij hawm txoj hauv kev uas cov ntaub ntawv hloov kho los ntawm kev lag luam hluas yog txwv tsis pub sau los ntawm tus laus dua

Kev lag luam T thov hloov cov ntaub ntawv Q. yog hais tias TS (T) < W-TS (Q), uas yog, qhov kev sib pauv sim sau tus nqi tshiab dua, kev hloov pauv T tsis yog dov rov qab li hauv txoj kev teev sijhawm.

Tau qhov twg los: www.hab.com

Ntxiv ib saib