Obnavljanje s senčnimi stranmi
Iz E-študij, proste zakladnice študentskega znanja
Obnavljanje s senčnimi stranmi je učinkovito predvsem pri transakcijskih podatkovnih nesrečah, ko je potrebno razveljaviti že izvedena ažuriranja PB
Vsebina |
Princip delovanja
Strani notranjega pomnilnika, ki so bile ažurirane, se ne zapisujejo neposredno v PB, ampak na nezasedene bloke na disku.
Če se transakcija zaključi uspešno, se omenjeni novi bloki na disku vključijo v PB, namesto starih neažuriranih
Indeksi
Naslov vsake strani na disku je zapisan v indeksu strani.
Obstajata dva indeksa strani:
- tekoči indeks strani
- senčni indeks strani
Na začetku transakcije sta oba indeksa enaka. Tekoči indeks se nahaja v notranjem pomnilniku, senčni pa na disku. Naslov senčnega indeksa na disku je zapisan v posebni startni datoteki.
Operaciji PreberiBlok(X) in IzpišiBlok(X) uporabljata za dostop do blokov na disku (povpraševanje, ažuriranje) tekoči indeks.
Izvajanje
Ažuriranje
Ažurirni ukaz Spremeni(X,x) se izvede v naslednjih korakih:
- če se stran X s podatkom x še ne nahaja v notranjem pomnilniku, se izvede operacija PreberiBlok(X)
- zapisu x, ki se nahaja na strani X notranjega pomnilnika, se vrednost ustrezno spremeni
- če stran X z zapisom x še ni bila ažurirana (na disku), se na disku poišče še nerabljena stran in z njenim naslovom se v tekočem indeksu zamenja dosedanji naslov strani. Sicer ta nerabljena stran že obstaja za stran X
Neuspeh
V primeru transakcijske nesreče, ko se izda ukaz Pozabi, se tekoči indeks strani preprosto prepiše s senčnim indeksom in v PB ni sledu o ažuriranjih, ki so se v okviru transakcij izvedla.
Aktivirajo se senčne strani in transakcijski program lahko nadaljuje z izvajanjem naslednje transakcije.
Uspeh
Ob uspešnem zaključku transakcije (ukaz Pomni), se izvede naslednje:
- vse ažurirane strani, ki se še nahajajo v pomnilniku, se izpišejo na disk,
- tekoči indeks strani se izpiše na prosto mesto na disk in to postane senčni indeks,
- naslov novega senčnega indeksa na disku se vpiše v startno datoteko.
Če bi se med izvajanjem transakcije ali korakov 1-3 izvedla sistemska nesreča, bi SUPB ob ponovnem zagonu iz startne datoteke prebral naslov senčnega indeksa in na ta način prekinjena transakcija ne bi v PB pustila nobenih sledi
Zaščita pred nesrečami
Obnavljanje s senčnimi stranmi ščiti PB pred transakcijskimi in sistemskimi nesrečami. Za zaščito pred diskovnimi nesrečami, je potrebno poskrbeti dodatno.
