Obnova transakc po vypadku
PA 150 Principy operacnch system u Jan Staudek http://www. .muni.cz/usr/staudek/vyuka/
}
w A| y < 5 4 23 1 0 / -. , )+ ( %&' $ # !"
Æ
Verze : podzim 2016
Klasi kace poruch 2
poruchy transakc X logicke chyby
v r esen T nelze pokracovat v dusledku nejakych vnitrnch chybovych podmnek aplikace/transakce { chybny vstup, nenalezen dat, pretok, . . . { Vesmes neobnovitelna c innost, havarie / krach cele aplikace X beh aplikace nema smysl obnovovat X systemem detekovatelne chyby chybu detekuje podpurn y system (TPM, OS, DBS, . . . ), aktivn T krachuje dusledkem napr. uvaznut , uplynutm c asoveho limitu, . . . ). { Zkrachovana transakce mu ze byt nasledn e spustena znovu napr. protokolem TPM r escm uvaznut , nebo klientem z duvodu uplynut c asoveho limitu X neobnovuje se beh aplikace, opakovane se spoust zkrachovala T Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
1
Klasi kace poruch 2
porucha disku X padnut hlav disku na povrch, chyba pamet'oveho media,
porucha vyrazujc diskovy mechanismus, . . . X predpoklad { porucha je detekovatelna (kontroln soucty, . . . ) X Vyss spolehlivost lze dosahnout aplikac nektere z metod RAID X Po obnove z periodicky provad enych zalo znch kopi dat a kontrolnch bodu aplikace lze aplikaci od kontrolnho bodu spustit znovu.
2
vypadek systemu X vypadek energie, hw porucha, sw porucha systemu, ... X predpoklady { obsah energeticky nezavisl ych pamet se vypadkem
systemu neposkozuje, beh vlastnho systemu lze posleze obnovit X neporusenost dat lze over ovat provad enm integritnch kontrol X Transakce nedokoncena pri vypadku systemu krachuje a pri obnove c innosti systemu ji Recovery Manager (TPM) spust znovu. Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
2
Obnovitelnost transakcnho zpracovan , spravce obnovy 2
2
Studovanou oblast je r esen obnovy transakcnho zpracovan po vypadku systemu, ktery zpusobuje ztratu obsahu RAM, nikoli ztratu obsahu permanentnch pamet Obnova mus zachovat vlastnost transakc { atomicitu: X Zprstupnovan e objekty v databazi (na disku) po obnove odra zej { vsechny u cinky provedenych (committed) transakc a
{ z adn e u cinky neprovedenych c i zkrachovanych transakc X TPM pri obnove po vypadku mus eliminovat u cinky zkrachovanych transakc a transakc neprovedenych pri vypadku X Eliminace u cinku neprovedenych c i zkrachovanych transakc obnovuje stav jimi modi kovanych objektu do stavu, ve kterem se nachazely pri startu techto transakc { roll back 2
Eliminaci u cinku r es TPM svoj funkcnost { spravce obnovy Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
3
Obnovitelnost transakcnho zpracovan , spravce obnovy 2
Dosazen atomicity T v prostred s vypadky predpoklad a X uplatnov an vlastnosti trvalosti (durability) {
objekty zpracovane provedenymi transakcemi se mus uchovavat trvale, jsou proto uklad any do permanentn pameti a pote jsou zde kdykoliv dostupne { Po potvrzen klientova prohla sen transakce za provedenou, mus byt u cinky transakce trvale uchovane v permanentn pameti X Vypadky serveru (systemu) r esen atomicity transakc ovlivn, transakce mus byt atomicke i v prpade vypadku serveru/systemu
2
Proces obnova po vypadku = zajisten, aby X vsechny objekty modi kovane transakcemi byly pri
obnove po vypadku obnovitelne X hodnoty obnovenych objektu byly vysledkem vsech zmen realizovanych provedenymi transakcemi a z adnou ze zmen realizovanych rozpracovanymi, resp. zkrachovalymi transakcemi Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
4
Algoritmy obnovy 2
2
Jedna se o techniky zajist'ujc v prostred s vypadky konzistenci baze dat, atomicitu transakc vc. trvalosti vysledk u provedenych transakc Algoritmy obnovy maj 2 c asti X Akce probhajc behem normaln ho r esen transakc
cl { zajistit dostatek informac nutnych pro obnovu po vypadku cena { snz en vykonu pro aplikace, zvy sen narok u na pamet' X obnovovac akce probhajc po vypadku, cl { obnova obsahu baze dat do stavu, ktery zarucuje (viz vy se): { konzistenci baze dat, { atomicitu transakc a { trvalost vysledk u transakc Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
5
Repete zaklad u OS { Typy pamet pro uchovav an dat 2
energeticky zavisl a (nestal a), Volatile Storage X vypadek energie zpusob ztratu jejho obsahu X typicky operacn pamet', RAM, cache pamet' X typicky prmo prstupna z procesoru
2
energeticky nezavisl a (permanentn), Nonvolatile Storage X X X X
obsah je zachovan i po vypadku energie typicky disk, paska byv a o nekolik r ad u pomalejs pameti nez volatile pameti obsah nen prmo prstupny z procesoru
2
stabiln, Stable Storage
2
Na s hlavn cl { zajistit r adn y beh transakc v prpadech, kdy vypadek systemu zpusob ztratu obsahu energeticky zavisl e pameti
X Informacn obsah se nikdy neztrat, dosud ,,chimera", X idea se aproximuje replikac permanentn pamet (RAID)
Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
6
Repete zaklad u OS { Zprstupnov an dat na disku 2 2 2 2 2
jednotka IO prenosu (disk ⇔ RAM) { blok dat pro na s u cel { 1 blok dat reprezentuje 1 objekt zprstupnovan y transakc, pracujeme s neblokovanymi zaznamy blok dat ulozeny na disku { fyzicky blok blok dat ulozeny v RAM { blok ve vyrovnavac pameti, (Buffer block), cache objektu v nestal e pameti presun bloku dat mezi RAM a diskem spoust DBS operacemi X input(B) {
pomoc sluzeb OS prena s fyzicky blok s objektem B do RAM, vytva r blok ve vyrovnavac pameti, v RAM, kopii objektu B X output(B) { pomoc sluzeb OS prena s blok ve vyrovnavac pameti s kopi B v RAM na disk, prp. na disku jm prslusny fyzicky blok nahrazuje Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
7
Repete zaklad u OS { Zprstupnov an dat na disku
Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
8
Zprstupnov an dat transakcemi 2
pro jednoduchost predpoklad ame, z e jeden blok dat obsahuje prav e jednu datovou polozku zpracovavanou transakc X tzv. neblokovane zaznamy, kde zaznamem se rozum datova polozka
zpracovavan a transakc, objekt
2
kazda transakce Ti ma v RAM svoji privatn pracovn oblast, ve ktere se udrzuj lokaln kopie vsech datovych polozek, objektu, ke kterym Ti pristupuje, ktere Ti c te c i modi kuje X lokaln kopii datove polozky X transakce Ti znacme xi
Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
9
Zprstupnov an dat transakcemi 2
transakce Ti presunuje obsah datove polozky X do/z privatn pracovn oblast transakce operacemi API TPM X read(X)
prirazuje hodnotu X z bloku dat Bx v RAM do lokaln promenne xi
X write(X)
prirazuje hodnotu lokaln promenne xi do X v bloku dat Bx v RAM
2 2 2
transakce provad read(X) pri prvnm c tecm zprstupnen X dals c tec prstupy Ti k X se r es na lokaln kopii X , na xi pri modi kacnm prstupu k X transakce provad write(X), operace write(X) lze provest kdykoliv pred commit transakce
Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
10
Zprstupnov an dat transakcemi 2
obe operace read(X) a write(X) si mohou po DBS/OS vynutit proveden operace input(Bx) pokud kopie bloku Bx nen jeste umstena ve vyrovnavac pameti v RAM X pri vytva ren xi operac read(X) X pred vypisem (output) xi operac write(X),
napr. pokud fyzicky blok obsahuje vce zaznam u apod.
2
Proveden output(Bx) nemus bezprostredne navazovat na vyvolan write(X). Operace output(Bx) se mu ze provest az kdyz OS jej proveden povazuje za vhodne. X TPM mu ze ale nemus zajist'ovat, z e transakce je provedena az po dokoncen vsech relevantnch outputs - vlastnost urcujc typ
algoritmu obnovy X TPM zajist'uje uvolnen prstupu k vypisovanemu objektu svymi vnitrnmi zamky (latches) az po ukoncen operace output Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
11
Zprstupnov an dat transakcemi
Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
12
Problem zajisten atomicity pri vypadku systemu 2
Osud provedene transakce dky moznemu odlozen operac output nemus byt pri vypadku znam y X TPM nema informaci o tom, ktere bloky dat OS pred vypadkem na disk vypsal (operac output)
2
sen problemu Re atomicity v prostred s vypadky systemu X Do permanentn pameti se mus nejprve zapsat
informace popisujc zmeny, aniz by se menila samotna databaze. X Tato informace nam pomu ze zajistit, z e se vsechny modi kace vykonane provedenou transakc zaznamenaj v databazi (treba az v prub ehu obnovy po vypadku). X Tato informace mu ze take pomoci zajistit, z e v databazi nezustanou z adn e zmeny vykonane zkrachovanou transakc.
Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
13
Obnovitelnost transakcnho zpracovan , spravce obnovy 2 2
Obnovitelnost po vypadku / poruse r es soucast TPM { spravce obnovy, recovery manager spravce obnovy ma ukoly X uchovavat informace o modi kacch hodnot objektu provad enych
transakcemi v permanentn pameti (vytva r obnovovac soubor, recovery file) X po opetovnem spusten po vypadku obnovovat puvodn hodnoty objektu v serveru (puvodn = vysledek provedenych transakc) X prub ez ne reorganizovat obnovovac soubor s clem dosahnout co nejvyss vykon obnovy X udrzovat dostatecny pamet'ovy prostor na disku pro obnovovac soubor
2
Pokud se pozaduje obnovitelnost i pri poruse permanentn pameti, je potreba pouzt zrcadlen disku (RAID) apod. Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
14
Metody udr zby obnovovacho souboru 2
Veden denku, log X studujeme majoritne
2
Realizace transakc na stnove kopii DB, shadow version X nechav ame sps e stranou pozornosti, uvedeme jen bazov e principy
2
Obnovovac proces mus byt idempotentn operac X lze jej opakovat vcekrat se stejnym vysledkem
Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
15
Veden denku 2 2
Zmeny v databazi spravovane serverem se behem provad en vsech transakc zaznamenavaj do denku (log) Denkove zaznamy se vytva r apriornm zaznamenav an m { zaznamenav an m predem, write-ahead logging, X TPM je vytva r pred vlastnm provedenm operac nad daty X zapisuj se na disk prmo, bez vyrovnav an toku na urovni OS (TPM vyvola bezprostredn proveden sluzby OS output) X Denk mus TPM periodicky c istit, dale jiz nepotrebne
denkove zaznamy vymazav a. Princip pozname pozdeji.
2 2
Porad zaznam u v denku odra z historii behu transakcnho zpracovan Denk obsahuje aktualn , posledn obraz hodnot objektu + historii transakc, ktere tento obraz vyprodukovaly Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
16
Typy zaznam u v obnovovacm souboru typu denk 2 2
Zaznam o startu transakce, < Ti start > Zaznam o korekci polozky/objektu, < Ti, Xj , V1, V2 > X X X X X X
2 2 2
Ti identi kator transakce, ktera provedla write Xj identi kator polozky/objektu V1 puvodn hodnota polozky/objektu V2 nova hodnota polozky/objektu zaznam umoznuje provest undo zmen ucinenych zkrachovalou T zaznam umoznuje provest redo zmen ucinenych provedenou T,
jejz vysledky se pred vypadkem nezapsaly trvale na disk { T modi kuje DB ≡ provad write do bueru v RAM, ktery OS nasledn e, nekdy, sluzbou output vypisuje na disk
Zaznam o proveden transakce, < Ti commit > Zaznam o zkrachovan transakce, < Ti abort > pozdeji pozname nektere dals typy zaznam u v denku Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
17
Veden denku 2
Spravce obnovy je aktivovan kdykoliv transakce X je spoustena { spravce zaznamenav a
v obnovovacm souboru existenci transakce, < Ti start > X zapisuje do DB { spravce aktualizuje obnovovac soubor zaznamem o korekci objektu, < Ti, Xj , V1, V2 > X je provedena / zkrachuje { spravce aktualizuje v obnovovacm souboru stav transakce zaznamem o proveden c i krachovan , < Ti commit >, < Ti abort > 2 2
Denk nen aplikacn soucast baze dat, denk (obnovovac soubor) si uchovav a v permanentn pameti TPM Pri obnove po vypadku se rus u cinky kazde transakce, ktera nema v denku zaznam o proveden { < Ti commit >, vsechny podle denku neprovedene transakce krachuj Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
18
Veden denku 2 2 2
2
2
TPM v urcitych intervalech vytva r v denku kopie stavu cele DB, tzv. kontroln body, checkpoints Historii transakc provedenych do kontrolnho bodu lze z denku vymazat Pri obnove baze dat po vypadku TPM pak zrekonstruuje stav DB pred vypadkem podle informac uvedenych v poslednm kontrolnm bodu v denku Zapis do obnovovacho souboru se r es atomicky, zapisy do obnovovacho souboru jsou prme, nevyrovnavan e zapisy, pokud server vypadne, je vadny pouze posledn zapis Obnovovac soubor je udrzovany jako sekvencn soubor, sekvencn zapisy na disk lze r esit pomerne rychle Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
19
Algoritmus obnovy { bazov e vlastnosti 2
Algoritmus obnovy mus obecne poctat s tm, z e X transakce mu ze byt hotova, ale datovy buer transakce v RAM
nemus byt jeste vypsany na disk X bez c transakce modi kujc objekty DB mu ze dky vypadku krachovat 2 2
2
Protoze denk obsahuje jak stare tak i nove hodnoty objektu, lze tudz r esit jak undo, tak i redo transakce Algoritmy obnovy obvykle vyzaduj, aby objekt modi kovany jednou transakc nemohla modi kovat jina transakce, dokud se prva transakce neprovede nebo nezkrachuje { mus se pouzt alespon striktn 2-fazov e zamykan apod. { exkluzivn zamky se uvolnuj az pri commit/abort transakce Moznost obnovitelnosti se dosahuje za cenu omezen soubez nosti, :{( Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
20
Modi kace objektu v DB 2
pouzvaj se dve varianty provad en modi kac objektu v DB, odlisuj se okamzikem kdy se objekt v bazi dat modi kuje
2
Modi kace baze dat odlozena az do proveden transakce, (Deferred database modification) X DB se modi kuje az pri commit transakce X v RAM mus transakce udrzovat kopie vsech modi kovanych polozek
a pokud je T opakovane c te, c te je z vlastn kopie X procedura obnovy je jednoduss 2
Bezprostredn modi kace baze dat, (Immediate database modification) X DB se modi kuje kdykoliv v dobe, kdy je transakce aktivn X moznost soubez nost je vyss Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
21
Odkladan a modi kace baze dat 2
2
modi kace dat v DB se v pub ehu r esen T zaznamenavaj pouze do denku (do logu), a jsou udrzovane pouze v pracovnch oblastech transakce v RAM operace zapisu do DB (output) se provad ej az kdyz je T hotova, tj. pri prechodu T do stavu provedena (commit) X v hotove transakci, tj. pred provedenm t commit, jsou zmeny
provedene pouze v lokaln pracovnm prostoru transakce zapisem zaps do denku X behem provad en t commit se prmym zaznamy o zapisech, a pote se modi kace zapsuj do databaze X pokud transakce krachne pred provedenm t commit, v databazi se nic nezmenilo, nen nutne pri obnove delat undo, vysledky transakc provedenych pred vypadkem se pri obnove podle denku reaplikuj, provad se redo X nazev teto varianty algoritmu obnovy { NO-UNDO/REDO algorithm Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
||||||||||||||||||||||||
22
Odkladan a modi kace baze dat podrobneji 2 2 2
predpokladejme prozatm seriov e provad en transakc transakce zacna zapsan m do denku zaznamu < Ti start > operace write(X) zaps e do denku zaznam o w-operaci < Ti, X, V > X V je nova hodnota, original se nezaznamenav a (NO-UNDO/REDO) X modi kace X v DB se neprovedla okamzite, odlozila se
2
kdyz se Ti prohlasuje za provedenou (commited), { do denku se zapisuje zaznam < Ti commit > { c tou se zaznamy o w-operacch z denku a { dokoncuj se (output) dosud odlozene vypisy na disk a { a teprve pote se transakce stav a provedena Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
||||||||||||||||||||||||
23
Odkladan a modi kace baze dat 2 2
2
Jestlize system vypadne pred commit transakce nebo kdyz transakce zkrachuje, informace v denku se ignoruje vypadek systemu behem vypisu dat na disk nevad, denk je pamatovany ve stabiln pameti, modi kace lze zopakovat stav modi kovanych dat po vypadku systemu se obnovuje podle denku uchovaneho ve stabiln pameti X po vypadku se transakce opakuje (redo) pouze kdyz byla provedena, tj. v denku je < Ti starts > i < Ti commit > X provad se Redo(Ti), u cinky provedene transakce se obnovuj X tj. pri obnove system obnovy prochaz denk a pro kazdy zaznam < Ti commit > v denku se provede Redo(Ti) Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
||||||||||||||||||||||||
24
Poznamky k modi kacm a obnove 2
operace redo mus byt idempotentn operac X opakovane proveden je ekvivalentn jednorazov emu proveden X napr. prevod c astky z jednoho u ctu na jiny u cet nen idempotentn X nutna vlastnost pro obnovu po poruse, ke ktere doslo behem obnovy
2
Na urovni TPM / DBS mus byt vystupovane (output) bloky exkluzivne zamykane do uskutecnen vystupu na disk X jedna se o jine zamky (latches)
nez se pouzvaj pro r zen soubez nosti (locks)
Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
25
Bezprostredn modi kace baze dat 2 2
2
2 2
Do denku se zaps e zaznam o startu transakce modi kace provad ene dosud aktivn transakc se provad ej v RAM nebo na disku kdykoliv nez se transakce stane provedenou zaznamy o korekci se zapisuj do denku ve stabiln pameti prmo, bez kumulac ve vyrovnavac ch pametech na urovni OS, vzdy pred provedenm modi kace objektu v DB jakmile se transakce stane hotova, do denku se zapisuje zaznam o jejm proveden (commit) vlastn modi kace objektu v DB (outputs) se mohou provest kdykoliv pred nebo po proveden transakce X porad vypis u bloku (outputs) se mu ze odlisovat od porad writes Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
26
Prklad veden denku bezprostredn modi kac 2 2 2 2
Necht' inicialn e plat A = 1 000, B = 2 000, C = 700 T0: presunuje 50 z A do B T1: snizuje C o 100 denkove a DB zaznamy odpovdajc proveden < T0,
Jan Staudek, FI MU Brno
|
T1 >
PA150 { Obnova transakc po vypadku
27
Obnova podle denku, Log-based Recovery 2
Zaznam o korekci se do denku na disku zapisuje pred modi kac objektu v DB a dky tomu lze v DB udelat X modi kaci objektu kdykoliv pozdeji, kdy to je optimaln X undo modi kac udelanych zkrachovanymi / nedokoncenymi
transakcemi X redo modi kac udelanych provedenymi transakcemi, ktere se do vypadku nestacily vypsat do DB na disku
Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
28
Obnova podle denku, Log-based Recovery 2
Jakmile se transakce se stane hotova do denku na disku se zaps e zaznam o proveden transakce < Ti commit > X v tomto okamziku jsou v denku uz vsechny
dosavadn denkove zaznamy dane transakce X provedenou transakci lze tudz kdykoli (po vypadku) zopakovat (redo) z hlediska naln ch hodnot objektu 2
jestlize dojde k vypadku a v denku zaznam < Ti commit > nen, u cinky transakce se pri obnove c innosti rus, vrac se zpet na puvodn hodnoty modi kovanych objektu X Transakce se povazuje za zkrachovalou, provad se undo podle denku
Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
29
Obnova podle denku, Log-based Recovery, zapory 2
celkove dochaz ke snizovan vykonu X zapis dat se provad 2× (1× do denku a 1×do DB), X do denku se zapisuj zaznamy
o startech, proveden a krachovan transakc
2
zvysuje se pamet'ova slozitost X denk (log) vyzaduje pro sve ulozen dals pamet' na disku
Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
30
Pouzite obnovovac procedury 2
pouzvaj denk k nalezen objektu modi kovanych Ti a starych a novych hodnot techto objektu
2 redo(Ti) X nastavuje objekty modi kovane Ti na nove hodnoty X porad nastavovan mus byt shodne s poradm modi kac X denk se obvykle prohledav a systematicky od zacatku a
nastavuje se nova hodnota pro kazdy modi kovany objekt
Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
31
Pouzite obnovovac procedury 2 undo(Ti) X nastavuje objekty modi kovane Ti na stare, inicialn hodnoty X operace undo(Ti) se provad prav e jedenkrat v prpadech, z e se v denku nenalezne ani commit ani abort Ti a r es se navrat X X X X
behem normaln ho zpracovan nebo pri obnove po vypadku. porad provad en undo(Ti) { zpetne od poslednho zaznamu v denku pro Ti pro kazdy obnoveny objekt X na hodnotu V se do denku zaps e specialn (redo-only) zaznam < Ti, X, V > nakonec se do denku zaps e specialn zaznam < Ti, abort > Po proveden vsech undo bude mt kazda transakce v denku zaznam commit nebo abort a postac se s obnovou pomoc redo
Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
32
Pouzite obnovovac procedury 2
Transakce bude pri obnove undone, pokud denk obsahuje jej start a neobsahuje jej commit nebo abort
2
Transakce bude pri obnove redone, pokud denk obsahuje jej start a obsahuje jej commit nebo abort X redo zkrachovale transakce je dky specialn m redo-only zaznam um
v denku smysluplna a r esen je pohotovejs
Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
33
Pouzit denku pro undo a redo transakc
2
ad a), vypadek nastal po
write (B)
v T0
X v denku je < T0 start > ale nen v nem < T0 commit/abort >, pri obnove se provede undo( < T0 >),
do denku za zaps e
< T0, B, 2000 >, < T0, A, 1000 >, < T0, abort >
a hodnoty A a B se vrat (na disku) na originaln hodnoty 1 000 a 2 000 Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
34
Pouzit denku pro undo a redo transakc
2
ad b), vypadek nastal po
write (C)
v T1
X v denku je < T1 start > a nen v nem < T1 commit/abort >, provede se undo( < T1 >), vc. < T1, C, 700 >, < T1, abort >
a hodnota C se vrat (na disku) na originaln hodnotu X v denku je < T0 start > i < T0 commit >, < T0 > je provedena, udela se redo( T0) X hodnoty A, B a C budou 950 a 2 050 a 700 Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
35
Pouzit denku pro undo a redo transakc
2
ad c), vypadek nastal po
commit (T1)
X v denku je < T0 start > i < T0 commit >, provede se redo(T0) X v denku je < T1 start > a < T1 commit >, provede se redo(T1) X hodnoty A, B a C budou 950 a 2 050 a 600 Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
36
Obnova podle denku pri soubez ne r esenych transakcch 2 2 2 2
vsechny T sdlej jeden denk (log) a objekty v RAM necht' se pouzva se bezprostredn modi kace dat sdleny objekt v RAM mu ze chtt modi kovat vce T mus se pouzt striktn 2-fazov e zamykan X tj. objekt X modi kovany neprovedenou T ostatn T nemaj dostupny (jak jinak provest undo kdyz by T1 korigovala X, pak T2 korigovala modi kovany X a provedla se (commit), a pote T1 zkrachovala ? )
2
zaznamy do denku se zapisuj stejne jako pri seriov em r esen transakc X POZOR: zaznamy ruzn ych transakc se mohou v denku prostrdavat
Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
37
Kontroln body, Checkpoints 2 2 2 2 2
denky transakc mohou byt dlouhe, obnova pak trva dlouho mohou se zbytecne delat redo transakc, ktere jiz maj udelane vystupy (outputs) do baze dat periodicky vytva rene kontroln body dobu obnovy zkrat behem vytva ren kontrolnho bodu nesmej transakce delat korekce dat, nesm zapisovat zaznamy do denku apod. pri periodickem vytva ren kontrolnch bodu se provad : X vystup vsech denkovych zaznam u umstenych v danem okamziku
v RAM z RAM (energeticky zavisl e pameti) do permanentn pameti X vystup vsech modi kovanych bloku vyr. pam. na disk (perm. pamet') X vystup zaznamu < checkpoint L > do denku (log) udrzovaneho v energeticky nezavisl e pameti X L je seznam aktivnch transakc v dobe tvorby kontrolnho bodu Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
38
Kontroln body, Checkpoints provedene pred zapisem < checkpoint L > se neobnovuj pomoc redo, jejich vysledek je soucast dat kontrolnho bodu Obnova po vypadku se tyk a pouze transakc { aktivnch v okamziku vytva ren kontrolnho bodu a { vsech transakc nasleduj cch po techto transakcch
2 Ti
2
X Pro transakce nemajc v denku < commit > se provede undo X Pro transakce majc v denku < commit > se provede redo
Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
39
Prklad obnovy z kontrolnho bodu
X vysledek T1 je obsazeny v kontrolnm bodu, nespoust se z adn a akce X T2 a T4 jsou v dobe vypadku jiz provedene, T3 a T5 nejsou v dobe vypadku provedene, X priprav se seznam undo a provede se redo T4 a pak redo T2 X provede se undo T5 a pak undo T3 Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
40
Algoritmus obnovy, detailnejs popis 2 2
2
Na zav er ilustrujme podrobnejs vyklad algoritmu obnovy po vypadku Predpoklad { objekty modi kovane dosud neprovedenou transakc nelze modi kovat jinymi transakcemi dokud zmnena transakce nestane provedenou nebo zkrachuje Nejprve si uka zeme navrat transakce pri normaln m behu, nejde o vypadek, pouze zkrachovala transakce
Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
41
Eliminace u cinku zkrachovale transakce, rollback 2 2
Necht' dojde ke krachu transakce < Ti > behem jej normaln c innosti, nejde o obnovu po vypadku systemu cinky zkrachovale transakce algoritmus krachovan U vrac: X zpetne prohlz denk a hleda zaznamy < Ti, Xj , V1, V2 > X do Xj zapisuje V1 a a v denku vytvor redo-only zaznam < Ti, Xj , V1 >
tzv. kompenzacn zazname v denku, kterym zajist'uje nastaven originaln hodnoty v nasleduj c(ch) fazi( ch) redo X jakmile nalezne v denku zaznam < Ti start >, zpetne hledan zastav a do denku prida < Ti abort >
2
v denku jsou nyn de nice jak modi kac ucinenych provedenymi transakcemi (commited), tak obnovy puvodn ch hodnot pri eliminacch u cinku zkrachovalych transakc (aborted)) Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
42
2-fazov y algoritmus algoritmus obnovy 2
Faze REDO X delan korekc v DB dle zaznam u v denku
vsech provedenych transakc od poslednho kontrolnho bodu X + delan korekc v DB dle kompenzacnch zaznam u v denku vracen ych (zkrachovalych) transakcch pred vypadkem systemu X + delan korekc v DB udelanych dle kompenzacnch zaznam u v denku dosud neprovedenych (aktivnch) transakc pri vypadku X do vypadku neprovedene aktivn transakce (ty budou vracen e zpet, byly aktivn pri provad en kontrolnho bodu), jsou v seznamu L a v denku ani < Ti commit > ani < Ti abort > ,nemaj 2
Faze UNDO X undo vsech neprovedenych transakc zpetnym pruchodem denkem,
od konce denku k poslednmu kontrolnmu bodu Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
43
Obnova po vypadku systemu, faze redo 2 2 2
2
prehravaj se modi kace provedene vsemi transakcemi pocnaje poslednm kontrolnm bodem prehravaj se zaznamy z denku vracen ych a provedenych transakc do vypadku odhaluj se neupln e provedene transakce, ktere se budou muset vratit zpet, ty mohly byt rozpracovane pri vytva ren kontrolnho bodu (pak jsou v seznamu transakc kontrolnho bodu) nebo pozdeji { v denku nemaj ani < T i commit > ani < T i abort > priprav se seznam vracenych transakc, seznam undo, podle seznamu transakc v kontrolnm bodu
Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
44
Obnova po vypadku systemu, faze redo 2 2 2 2 2 2 2
algoritmus obnovy postupuje od poslednho kontrolnho bodu de novaneho v denku zaznamem < checkpoint L > vpred pripravuje seznam vracenych transakc, undo, ten inicialn e nastav na seznam L ze zaznamu < checkpoint L > kdykoliv naraz na zaznam < Ti, Xj , V1, V2 >, zaps e V2 do Xj kdykoliv naraz na redo-only zaznam < Ti, Xj , V1 >, zaps e se V1 do Xj kdykoliv naraz na < T i start >, prida Ti do seznamu undo kdykoliv naraz na < T i commit/abort > odstran Ti ze seznamu undo na konci faze redo obsahuje seznam undo seznam neprovedenych transakc v dobe vypadku Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
45
Obnova po vypadku systemu, faze undo 2 2 2 2
2
2
vrac se zpet u cinky vsech transakc uvedenych v seznamu undo algoritmus denk prochaz zpetne kdyz naraz na zaznam o modi kaci objektu transakc uvedenou v seznamu undo vrat mu puvodn hodnotu kdyz nalezne < Ti start > transakce uvedene v seznamu undo, zaps e do denku < Ti abort > a Ti odstran ze seznamu undo jakmile seznam undo vyprazdn , faze undo konc, tj. nalezly se zaznamy < T i start > vsech transakc inicialn e uvedenych v seznamu undo skoncila obnova, aplikacn uloha mu ze pokracovat Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
46
Pouzit denku pro undo a redo transakc
Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
47
Varianty bezprostredn modi kace baze dat 2 2 2
2
baze dat se koriguje (output) bezprostredne po te, co dosud neprovedena (tj. aktivn) transakce, provede write baze dat se tedy modi kuje jeste v dobe, kdy je transakce aktivn, dosud neprovedla t commit aby bylo mozne tento krok prp. eliminovat (undo), mus se do w-zaznamu v denku udavat jak stara tak i nova hodnota modi kovane datove polozky zaznam o modi kaci X se vytva r pred modi kac X operac write(X), pozadavek apriornho zaznamenav an X zaznamy v denku se zapisuj prmo do permanentn pameti,
bez vyrovnav an X vsechny zaznamy v denku o modi kaci X mus byt zapsane do denku drve, nez se provede modi kace baze dat operac output(BX ) Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
48
Varianty bezprostredn modi kace baze dat 2 2 2
kdyz se Ti prohlasuje za provedenou, do denku se zapisuje zaznam < Ti commit > vystup (output) modi kovanych bloku na disk lze provest kdykoliv pred tm nebo po te, co je transakce provedena dve varianty obnovy pri bezprostredn modi kaci baze dat X transakcn monitor zajist output vsech modi kac pred provedenm
t commit { nen potreba delat pri obnove REDO { varianta UNDO/NO-REDO algorithm X transakcn monitor nezajist output vsech modi kac pred provedenm t commit { je potreba delat pri obnove REDO { varianta UNDO/REDO algorithm { nejslozitejs technika obnovy, vyklad viz predna ska Jan Staudek, FI MU Brno
|
PA150 { Obnova transakc po vypadku
49