Zaseganje zapisov - PXC, PSC
Iz E-študij, proste zakladnice študentskega znanja
Pri izvajanju transakcij je potrebno pri zaseganju podatkov upoštevati določena pravila, ki jim pravimo protokol. Protokol zagotavlja, da se prepletajoče izvajanje transakcij izvaja po enem izmed zaporedniških razporedov.
Poznamo 2 protokola:
- PXC (Protocol eXclusive Commit)
- temelji na ekskluzivnem zaseganju podatkov,
- PSC (Protocol Shared Commit)
- temelji na ekskluzivnem in deljenem zaseganju
Vsebina |
Pravila
- transakcija, ki želi podatek ažurirati, ga mora najprej ekskluzivno zaseči
- če zahteva po zaseženju ne more biti takoj odobrena, preide transakcija v stanje čakanja, njeno izvajanje se nadaljuje po odobritvi zaseženja
- vsa zaseženja se smejo sprostiti šele po zaključku transakcije (uspešnem ali neuspešnem)
- transakcija, ki želi le prebrati podatek in ji ni mar za sočasno ažuriranje tega podatka s strani kake druge transakcije, ga sme prebrati ne glede na to, ali je podatek zasežen ali ne
Dodatno vsebuje protokol PSC še pravilo:
- transakcija, ki želi ekskluzivno zaseči podatek, mora imeti pred tem odobreno njegovo deljeno zaseženje
Razlike med protokoloma
Razlike med protokoloma so v obsegu dopuščenega sočasnega izvajanja transakcij
- PSC dopušča sočasno izvajanje dveh zgolj povpraševalnih transakcij, ki zahtevata zaščito pred ažuriranjem; PXC pa ne
- PSC veliko bolj dopušča nastop mrtve zanke (medsebojno blokiranje transakcij)
Evidenca
Da se protokol za zaseganje podatkov lahko izvaja, mora SUPB za podatke voditi evidenco o tem:
- ali podatek je ali ni zasežen
- kako je zasežen
- kdo vse ga je zasegel
- kdo vse ga želi zaseči in na kakšne način
Lista
Vrste
Za vsak podatek se vzdržujeta 2 listi:
- lista odobrenih zaseženj
- vsebuje pare: (Oznaka transakcije, Vrsta Odobrenega Zaseženja)
- lista zahtevanih zaseženj
- vsebuje pare: (Oznaka transakcije, Vrsta Zahtevanega Zaseženja)
SUPB mora med izvajanjem transakcij ves čas vzdrževati obe listi
Spremembe
Do sprememb na listah prihaja:
- pri sprejetju zahteve po zaseženju
- pri odobritvi zaseženja
- ob zaključku transakcije