Obnova transakc po v ypadku



Podobné dokumenty
Obnova transakc po v ypadku

Sekven cn soubory. PV 062 Organizace soubor u. Jan Staudek Verze : jaro 2018

Distribuovan e algoritmy

Rzen informacn bezpecnosti v organizaci

Rzen informacn bezpecnosti v organizaci

Vl akna. PB 152 Operacn syst emy. Jan ÐStaudek Verze : jaro 2015

Uvod, celkov y prehled problematiky

Uvod, celkov y prehled problematiky

Spr ava hlavn pam eti

Podsyst em vstupu a v ystupu

GPDR, General Data Protection Regulation

Hasov an (hashing) na vn ejsch pam etech

Transakce, soub eznost a uv aznut v distribuovan em prostred

Spr ava hlavn pam eti

Prklad dokumentov e z akladny ISMS

Soubor, souborov e organizace

9. Transakční zpracování

Poctacov e syst emy { prehled

Projekt implementace ISMS

Volba v udce, Leader Election

Zotavení z chyb. Databázové systémy

Rzen soub ezn eho prov ad en transakc

Volba v udce, Leader Election

Soubor, souborov e organizace

Virtu aln pam et' PB 152 Operacn syst emy. Jan Staudek Verze : jaro 2017

Procesy. PB 152 Operacn syst emy. Jan Staudek Verze : jaro 2017

Projekt implementace ISMS Dodatek 1, PDCA

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 2 KONZISTENCE DATABÁZE

Prepn an, switching. Propojovac probl em. PV 169 Z aklady prenosu dat. Prepnac, prepnan a st' Metody prepn an

Procesy. Uvodem k proces um. PB 152 Operacn syst emy. Program a proces. Uvodem k proces um

Operacn syst emy { prehled

Politika informacn bezpecnosti

Operacn syst emy { prehled

Vl akna. Proces a vl akna. PB 152 Operacn syst emy. Resen editoru pomoc vl aken. Koncept sekvencnho procesu m uze b yt neefektivn

Hierarchick e indexy, B / B+ stromy, tries

Kapitola 13: Transakce. Koncept transakce. ACID vlastnosti

Audit (prezkoum av an) bezpecnostnch opatren, politik, syst em u,...

TÉMATICKÝ OKRUH TZD, DIS a TIS

Audit (prezkoum av an) bezpecnostnch opatren, politik, syst em u,...

Hierarchick e indexy, B / B+ stromy, tries

Politika informacn bezpecnosti, Dodatek

Politika informacn bezpecnosti, Dodatek

Hierarchick e indexy, B / B+ stromy, tries

Projekt implementace ISMS

Soubor, souborov e organizace

Distribuovan e prostred, cas a stav v distribuovan em prostred

Aplikacn bezpecnost. Informacn bezpecnost z pohledu aplikacnch syst em u. PV 017 Bezpecnost informacnch technologi

Distribuovan e prostred, cas a stav v distribuovan em prostred

Aplikacn bezpecnost. PV 017 Bezpecnost informacnch technologi. Jan Staudek Verze : podzim 2017

Typologie, funkcn skladby a architektury OS

Projekt implementace ISMS Dodatek 4, Prklad politiky ISMS

Podsyst em vstupu a v ystupu

Rzen reakc na bezpecnostn incidenty

Typologie, funkcn skladba a architektury OS, prklady z Windows, Unix, Linux, Android

Typologie, funkcn skladba a architektury OS, prklady z Windows, Unix, Linux, MAC OSx

Prklady opatren, zranitelnost a hrozeb

Paměti a jejich organizace

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 3 PARALELNÍ PROCESY V DATABÁZÍCH

Téma 11 Transakce a řízení souběhu

Typologie, funkcn skladby a architektury OS

Souborov e syst emy { koncepty a rozhran

Informacn teorie. PV 062 Organizace soubor u. Jan Staudek Verze : jaro 2018

Architektura SW pro transakční zpracování se skládá ze 3 modulů: - manažer dat - rozvrhovač - manažer transakcí

Krit eria hodnocen informacn bezpecnosti, dodatek

Komunikace a synchronizace proces u

Transakce a zamykání Jiří Tomeš

Paměťový podsystém počítače

Transakční zpracování Bezpečnost databází. Vladimíra Zádová, KIN, EF TUL- DBS 1

Souborov e syst emy { koncepty a rozhran

Disková pole (RAID) 1

Projekt implementace ISMS, Dodatek 2, Pozn amky k projektov emu rzen

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ

Sign aly. Data a sign aly. PV 169 Z aklady prenosu dat. Sign al, elektromagnetick y sign al. (Elektromagnetick y) sign al

Sign aly. PV 169 Z aklady prenosu dat. Jan Staudek Verze : podzim 2018

Struktura pamětí a procesů v DB Oracle. Radek Strnad

Disková pole (RAID) 1

TSM for Virtual Environments Data Protection for VMware v6.3. Ondřej Bláha CEE+R Tivoli Storage Team Leader. TSM architektura IBM Corporation

DBS transakční zpracování

Komunikace a synchronizace proces u

Příloha č.2 - Technická specifikace předmětu veřejné zakázky

Výukový materiál Hardware je zaměřený především na výuku principů práce hardwaru a dále uvádí konkrétní příklady použití.

Pl anov an. PB 152 Operacn syst emy. Jan Staudek Verze : jaro 2017

Komunikace a synchronizace proces u

Anatomie informacn bezpecnosti

Typologie, funkcn skladba a architektury OS, prklady z Windows, Unix, Linux, MAC OSx

projektu implementace ISMS

Healtcheck. databáze ORCL běžící na serveru db.tomas-solar.com pro

BM Software, Databáze Docházky 3000 na NAS serveru (pro MySQL) Němčičky 84, Němčičky u Břeclavi. Úvodní informace:

9. Transakční zpracování

Pl anu zachov an kontinuity podnik an,

Transakční zpracování

Pokročilé architektury počítačů

N avrh a pouzit metrik informacn bezpecnosti, m eren v ISMS

Digit aln vysl an. PV 169 Z aklady prenosu dat. Jan Staudek Verze : podzim 2018

Operační systémy 1. Přednáška číslo Struktura odkládacích zařízení


Typologie, funkcn skladba a architektury OS, prklady z Windows, Unix, Linux, Android

Koncept informacn bezpecnosti

Operační systémy 2. Struktura odkládacích zařízení Přednáška číslo 10

X u zs speci kace { v etev matematiky zabyvaj. Verze : jaro 2018 Jan Staudek, FI MU Brno. X late Middle English

Transkript:

Klasikace poruch Obnova transakc po v ypadku PA 150 Principy operacnch syst em u Jan ÐStaudek Û Å«Æ ±²³ µ ¹º»¼½¾ Ý http://www..muni.cz/usr/staudek/vyuka/ poruchy transakc logick e chyby v resen T nelze pokracovat v d usledku nejak ych vnitrnch chybov ych podmnek aplikace/transakce { chybn y vstup, nenalezen dat, pretok,... { Vesmes neobnoviteln a cinnost, hav arie / krach cel e aplikace syst emov e chyby chybu detekuje podp urn y syst em (TPM, OS, DBS,... ), krachuje aktivn T d usledkem napr. uv aznut, uplynutm casov eho limitu,... ). { Zkrachovan a transakce m uze b yt protokolem TPM rescm uv aznut n asledne spusten a znovu. { Zkrachovan a transakce z d uvodu uplynut casov eho limitu m uze b yt klientem n asledne spusten a znovu. Verze : podzim 2015 Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 1 porucha disku Klasikace poruch padnut hlav disku na povrch, chyba pamet'ov eho m edia, porucha vyrazujc celou/c ast diskov e pameti,... predpoklad { porucha je detekovateln a (kontroln soucty,... ) Po obnove z periodicky prov aden ych z aloznch kopi dat lze zkrachovanou transakci spustit znovu. v ypadek syst emu v ypadek energie, hw porucha, sw porucha syst emu,... predpoklady { obsah energeticky nez avisl ych pamet se v ypadkem syst emu neposkozuje, stav syst emu lze obnovit neporusenost lze overovat prov adenm r uzn ych integritnch kontrol Transakce pri v ypadku nedokoncen a krachuje a m uze ji pri obnove cinnosti spustit znovu Recovery Manager (TPM). Obnovitelnost transakcnho zpracov an, spr avce obnovy Studovanou oblast je resen obnovy transakcnho zpracov an po v ypadku syst emu, kter y zp usobuje ztr atu obsahu RAM, nikoli ztr atu obsahu permanentnch pam et Obnova mus zachovat vlastnost transakc { atomicitu: Zprstup novan e objekty v datab azi (na disku) odr azej { vsechny ucinky proveden ych (committed) transakc a { z adn e ucinky nedokoncen ych ci zkrachovan ych transakc TPM pri obnove po v ypadku mus eliminovat ucinky zkrachovan ych transakc a transakc nedokoncen ych pri v ypadku Eliminace ucink u nedokoncen ych ci zkrachovan ych transakc obnovuje stav jimi modikovan ych objekt u do stavu, ve kter em se nach azely pri startu techto transakc { roll back Eliminaci ucink u res TPM svoj funkcnost { spr avce obnovy Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 2 Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 3

Obnovitelnost transakcnho zpracov an, spr avce obnovy Dosazen atomicity transakc: Vlastnost trvalosti (durability) { objekty zpracovan e proveden ymi transakcemi se mus uchov avat trvale, jsou ukl ad any do permanentn pameti a pot e jsou zde kdykoliv dostupn e { Po potvrzen klientova prohl asen transakce za provedenou, mus b yt ucinky transakce trvale uchovan e v permanentn pameti V ypadky serveru (syst emu) nesm resen atomicity transakc ovlivnit, transakce mus b yt atomick e i v prpade v ypadku serveru Proces obnova po v ypadku = zajisten, aby vsechny objekty modikovan e transakcemi byly pri oziven po v ypadku obnoviteln e hodnoty obnoviteln ych objekt u byly v ysledkem vsech zmen realizovan ych proveden ymi transakcemi a z adnou ze zmen realizovan ych rozpracovan ymi, resp. zkrachoval ymi transakcemi Algoritmy obnovy Jedn a se o techniky zajist'ujc v prostred s v ypadky konzistenci b aze dat, atomicitu transakc vc. trvalosti v ysledk u proveden ych transakc algoritmy obnovy maj 2 c asti Akce probhajc behem norm alnho resen transakc cl { zajistit dostatek informac nutn ych pro obnovu po v ypadku cena { snzen v ykonu pro aplikace, zv ysen n arok u na pamet' obnovovac akce probhajc po v ypadku, cl { obnova obsahu b aze dat do stavu, kter y zarucuje (viz v yse): { konzistenci b aze dat, { atomicitu transakc a { trvalost v ysledk u transakc Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 4 Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 5 Repete z aklad u OS { Typy pamet pro uchov av an dat energeticky z avisl a (nest al a), Volatile Storage v ypadek energie zp usob ztr atu jejho obsahu typicky operacn pamet', RAM, cache pamet' typicky prmo prstupn a z procesoru energeticky nez avisl a (permanentn), Nonvolatile Storage obsah je zachov an i po v ypadku energie typicky disk, p aska b yv a o nekolik r ad u pomalejs pameti nez volatile pameti obsah nen prmo prstupn y z procesoru stabiln, Stable Storage Informacn obsah se nikdy neztrat, dosud,,chim era", idea se aproximuje replikac permanentn pamet (RAID) N as hlavn cl { zajistit r adn y beh transakc v prpadech, kdy v ypadek syst emu zp usob ztr atu obsahu energeticky z avisl e pam eti Repete z aklad u OS { Zprstup nov an dat na disku jednotka IO prenosu (disk RAM) { blok dat pro n as ucel { 1 blok dat reprezentuje 1 objekt zprstup novan y transakc, pracujeme s neblokovan ymi z aznamy blok dat ulozen y na disku { fyzick y blok blok dat ulozen y v RAM { blok ve vyrovn avac pameti, (Buffer block), cache objektu v nest al e pameti presun blok u dat mezi RAM a diskem spoust DBS operacemi input(b) { pomoc sluzeb OS pren as fyzick y blok B do RAM, vytv ar blok ve vyrovn avac pameti, v RAM, tzv. kopii objektu v RAM output(b) { pomoc sluzeb OS pren as blok ve vyrovn avac pameti B v RAM na disk, prp. na disku jm prslusn y fyzick y blok nahrazuje Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 6 Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 7

Repete z aklad u OS { Zprstup nov an dat na disku Zprstup nov an dat transakcemi pro jednoduchost predpokl ad ame, ze jeden blok dat obsahuje pr av e jednu datovou polozku zpracov avanou transakc tzv. neblokovan e z aznamy, kde z aznamem se rozum datov a polozka zpracov avan a transakc, objekt kazd a transakce T i m a v RAM svoji priv atn pracovn oblast, ve kter e se udrzuj lok aln kopie vsech datov ych polozek, objekt u, ke kter ym T i pristupuje, kter e T i cte ci modikuje lok aln kopii datov e polozky X transakce T i znacme x i Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 8 Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 9 Zprstup nov an dat transakcemi transakce T i presunuje obsah datov e polozky X do/z priv atn pracovn oblast transakce operacemi API TPM read(x) prirazuje hodnotu X z bloku dat B x v RAM do lok aln promenn e x i write(x) prirazuje hodnotu lok aln promenn e x i do X v bloku dat B x v RAM transakce prov ad read(x) pri prvnm ctecm zprstupn en X dals ctec prstupy T i k X se res na lok aln kopii X, na x i Zprstup nov an dat transakcemi ob e operace read(x) a write(x) si mohou po DBS/OS vynutit proveden operace input(b x ) pokud kopie bloku B x nen jeste umsten a ve vyrovn avac pameti v RAM pri vytvoren x i operac read(x) pred v ypisem x i operac write(x) Proveden output(b x ) nemus bezprostredne navazovat na vyvol an write(x). Operace output(b x ) se m uze prov est az kdyz OS jej proveden povazuje za vhodn e. pri modikacnm prstupu k X transakce prov ad write(x), operace write(x) lze prov est kdykoliv pred commit transakce Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 10 Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 11

Zprstup nov an dat transakcemi Probl em zajist en atomicity pri v ypadku syst emu Osud proveden e transakce dky mozn emu odlozen operac output nemus b yt pri v ypadku zn am y TPM nem a informaci o tom, kter e bloky dat OS vypsal (output) na disk pred v ypadkem Resen probl emu atomicity v prostred s v ypadky syst emu Do permanentn pameti se mus nejprve zapsat informace popisujc zmeny, aniz by se menila samotn a datab aze. Tato informace n am pom uze zajistit, ze se vsechny modikace vykonan e provedenou transakc zaznamenaj v datab azi (treba az v pr ubehu obnovy po v ypadku). Tato informace m uze tak e pomoci zajistit, ze v datab azi nez ustanou z adn e zmeny vykonan e zkrachovanou transakc. Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 12 Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 13 Obnovitelnost transakcnho zpracov an, spr avce obnovy Obnovitelnost po v ypadku / poruse res souc ast TPM { spr avce obnovy, recovery manager spr avce obnovy m a ukoly uchov avat informace o modikacch hodnot objekt u prov aden ych transakcemi v permanentn pameti (v obnovovacm souboru, recovery file) po opetovn em spusten po v ypadku obnovovat p uvodn hodnoty objekt u v serveru (p uvodn = v ysledek proveden ych transakc) pr ubezne reorganizovat obnovovac soubor s clem dos ahnout co nejvyss v ykon obnovy udrzovat dostatecn y pamet'ov y prostor na disku pro obnovovac soubor Metody udrzby obnovovacho souboru Veden denku, log studujeme majoritne Stnov e kopie, shadow versions nech av ame spse stranou pozornosti, uvedeme jen b azov e principy Obnovovac proces mus b yt idempotentn operac lze jej opakovat vcekr at se stejn ym v ysledkem Pokud se pozaduje obnovitelnost i pri poruse permanentn pam eti, je potreba pouzt zrcadlen disk u (RAID) apod. Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 14 Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 15

Veden denku Zmeny v datab azi spravovan e serverem se behem prov aden vsech transakc zaznamen avaj do denku (log) denkov e z aznamy se vytv ar apriornm zaznamen av anm { write-ahead logging, tj. vytv ar se pred vlastnm provedenm operac nad daty zapisuj se na disk prmo, bez vyrovn av an toku na urovni OS (TPM vyvol a bezprostredn proveden sluzby OS output) Denk mus TPM periodicky cistit, v ymazem d ele jiz nepotrebn ych z aznam u. Princip pozn ame pozdeji. porad z aznam u v denku odr az historii b ehu transakcnho zpracov an denk obsahuje aktu aln, posledn obraz hodnot objekt u + historii transakc, kter e tento obraz vyprodukovaly Typy z aznam u v obnovovacm souboru typu denk Z aznam o korekci polozky/objektu, < T i, X j, V 1, V 2 > T i identik ator transakce, kter a provedla write X j identik ator polozky/objektu V 1 p uvodn hodnota polozky/objektu V 2 nov a hodnota polozky/objektu umoz nuje prov est undo zmen proveden ych zkrachovalou T umoz nuje prov est redo zmen proveden ych provedenou T, jejz v ysledky se pred v ypadkem nezapsaly trvale na disk { T modikuje DB cin write do bueru v RAM, kter y OS n asledne, nekdy, sluzbou output vypisuje na disk Z aznam o startu transakce, < T i start > Z aznam o proveden transakce, < T i commit > Z aznam o zkrachov an transakce, < T i abort > pozdeji pozn ame nekter e dals typy z aznam u v denku Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 16 Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 17 Veden denku Veden denku spr avce obnovy je aktivov an kdykoliv transakce je spousten a { spr avce zaznamen av a v obnovovacm souboru existenci transakce zapisuje { spr avce aktualizuje obnovovac soubor z aznamem o korekci objektu je proveden a / zkrachuje { spr avce aktualizuje v obnovovacm souboru stav transakce z aznamem o proveden ci krachov an denk nen aplikacn souc ast b aze dat, denk (obnovovac soubor) si uchov av a v permanentn pameti TPM pri obnove po v ypadku se rus kazd a transakce, kter a nem a v denku z aznam o proveden { vsechny podle denku neproveden e transakce krachuj TPM udrzuje v permanentn pam eti konzistentn stav cel e b aze dat { prpadne v urcit ych intervalech vytv ar v denku kopie stavu DB, tzv. kontroln body, checkpoints pri obnove b aze dat po v ypadku TPM zrekonstruuje stav DB pred v ypadkem podle informac uveden ych v poslednm kontrolnm bodu v denku historii do kontrolnho bodu lze z denku vymazat z apis do obnovovacho souboru se res atomicky, z apisy do obnovovacho souboru jsou prm e, nevyrovn avan e z apisy, pokud server vypadne, je vadn y pouze posledn z apis obnovovac soubor je udrzovan y jako sekvencn soubor, sekvencn z apisy na disk lze resit pomerne rychle Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 18 Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 19

Modikace objektu v DB pouzvaj se dv e varianty prov ad en modikac objekt u v DB, odlisuj se okamzikem kdy se objekt v b azi dat modikuje bezprostredn modikace b aze dat v pr ub ehu resen transakce (Immediate database modification) z aznamy o korekci se zapisuj do denku ve stabiln pameti prmo, obvykle bez kumulac ve vyrovn avacch pametech na urovni OS modikace objekt u v DB se mohou prov est kdykoliv pred nebo po proveden transakce, ne nutne v porad prov aden z apis u odlozen a modikace b aze dat az do proveden transakce, (Deferred database modification) DB se modikuje pri commit transakce v RAM mus transakce udrzovat kopie vsech modikovan ych polozek a pokud je T opakovane cte, cte je z vlastn kopie procedura obnovy je jednoduss, sezn ame se s n pozdeji Modikace objektu v DB Algoritmus obnovy mus obecn e poctat s tm, ze transakce m uze b yt proveden a, ale datov y buer transakce v RAM nemus b yt jeste vypsan y na disk bezc transakce modikujc objekty DB m uze krachovat dky v ypadku Denk obsahuje jak star e tak nov e hodnoty objekt u, lze tudz resit jak undo, tak i redo transakce Algoritmy obnovy obvykle vyzaduj, aby objekt modikovan y jednou transakc nemohla modikovat jin a transakce, dokud se prv a transakce neprovede nebo nezkrachuje { mus se pouzt striktn 2-f azov e zamyk an apod. { exkluzivn z amky se uvol nuj az pri commit/abort transakce Prinos obnovitelnosti se dosahuje za cenu omezen soub eznosti Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 20 Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 21 Obnova podle denku, Log-based Recovery, detailn e Denk se vytv ar principem apriorn zaznamen av an { write-ahead logging, denkov y z aznam se zaznamen av a do stabiln pameti prm ym z apisem { tj. bez vyrovn av an na urovni pod TPM (tj. na urovni OS) pri spusten transakce T i se vytv ar denkov y z aznam < T i start > denkov y z aznam o w-operaci popisuje jednu write operaci uvedenm { jm ena transakce { jej jednoznacn y identik ator, T i { jm ena datov e polozky { jej jednoznacn y identik ator, X { p uvodn hodnotu X (co bylo preps ano) { novou hodnotu X (po z apisu) v prpade r adn eho ukoncen (proveden) T i se zapisuje denkov y z aznam < T i commit > v prpade zkrachov an T i se zapisuje denkov y z aznam < T i abort > Obnova podle denku, Log-based Recovery, klady / z apory + Z aznam o korekci se do denku na disku zapisuje pred modikac objektu v DB a dky tomu lze v DB udelat modikaci objektu kdykoliv pozdeji, kdy to je optim aln undo modikac udelan ych zkrachovan ymi / nedokoncen ymi transakcemi redo modikac udelan ych proveden ymi transakcemi, kter e se do v ypadku nestacily vypsat do DB na disku { celkove doch az ke snizov an v ykonu z apis dat se prov ad 2 (1 do denku a 1 do DB), do denku se zapisuj z aznamy o startech, proveden a krachov an transakc { zvysuje se pam et'ov a slozitost denk (log) vyzaduje pro sv e ulozen dals pamet' na disku Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 22 Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 23

Proveden a transakce Transakce se stane proveden a jakmile se do denku na disku zapse z aznam o proveden transakce < T i commit > v tomto okamziku jsou v denku uz vsechny dosavadn denkov e z aznamy dan e transakce provedenou transakci lze tudz kdykoli (po v ypadku) zopakovat (redo) z hlediska n alnch hodnot objekt u jestlize dojde k v ypadku a v denku z aznam < T i commit > nen, ucinky transakce se pri obnove cinnosti vrac zpet na p uvodn hodnoty Prklad denku, bezprostredn modikace Necht' inici alne plat A = 1 000, B = 2 000, C = 700 T 0 : presunuje 50 z A do B T 1 : snizuje C o 100 denkov e a DB z aznamy odpovdajc proveden < T 0, T 1 > Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 24 Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 25 Obnova podle denku pri soub ezn e resen ych transakcch vsechny T sdlej jeden denk (log) a objekty v RAM necht' se pouzv a se bezprostredn modikace dat sdlen y objekt v RAM m uze chtt modikovat vce T mus se pouzt striktn 2-f azov e zamyk an tj. objekt X modikovan y neprovedenou T ostatn T nemaj dostupn y (jak jinak prov est undo kdyz by T 1 korigovala X, pak T 2 korigovala modikovan y X a provedla se (commit), a pot e T 1 zkrachovala? ) Pouzit e obnovovac procedury pouzvaj denk k nalezen objekt u modikovan ych T i a star ych a nov ych hodnot techto objekt u redo(t i ) nastavuje objekty modikovan e T i na nov e hodnoty porad nastavov an mus b yt shodn e s poradm modikac denk se obvykle prohled av a systematicky od zac atku a nastavuje se nov a hodnota pro kazd y modikovan y objekt z aznamy do denku se prov adej stejne jako pri s eriov em resen transakc POZOR: z aznamy r uzn ych transakc se mohou v denku prostrd avat Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 26 Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 27

undo(t i ) Pouzit e obnovovac procedury nastavuje objekty modikovan e T i na star e hodnoty porad prov aden undo(t i ) { zpetne od poslednho z aznamu v denku pro T i pro kazd y obnoven y objekt X na hodnotu V se do denku zapse speci aln (redo-only) z aznam < T i, X, V > nakonec se do denku zapse speci aln z aznam < T i, abort > operace undo(t i ) se prov ad pr ave jedenkr at v prpadech, ze se v denku nenalezne ani commit ani abort T i a res se n avrat behem norm alnho zpracov an nebo pri obnove po v ypadku. Po proveden vsech undo bude mt kazd a transakce v denku z aznam commit nebo abort a postaci se s obnovou pomoc redo Pouzit e obnovovac procedury Transakce bude pri obnov e undone, pokud denk obsahuje jej start a neobsahuje jej commit nebo abort Transakce bude pri obnov e redone, pokud denk obsahuje jej start a obsahuje jej commit nebo abort redo zkrachoval e transakce je dky speci alnm redo-only z aznam um v denku smyslupln a a resen je pohotovejs Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 28 Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 29 Pouzit denku pro undo a redo transakc Pouzit denku pro undo a redo transakc ad a), v ypadek nastal po write (B) v T0 v denku je < T 0 start > ale nen v nem < T 0 commit/abort >, pri obnove se provede undo( < T 0 >), do denku za zapse < T 0, B, 2000 >, < T 0, A, 1000 >, < T 0, abort > hodnoty A a B se vr at (na disku) na origin aln hodnoty 1 000 a 2 000 ad b), v ypadek nastal po write (C) v T1 v denku je < T 1 start > a nen v nem < T 1 commit/abort >, provede se undo( < T 1 >), vc. < T 1, C, 700 >, < T 1, abort > hodnota C se vr at (na disku) na origin aln hodnotu v denku je < T 0 start > i < T 0 commit >, < T 0 > je proveden a, udel a se redo( T 0 ) hodnoty A, B a C budou 950 a 2 050 a 700 Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 30 Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 31

Pouzit denku pro undo a redo transakc Kontroln body, Checkpoints denky transakc mohou b yt dlouh e, obnova pak trv a dlouho mohou se zbytecn e d elat redo transakc, kter e jiz maj proveden e v ystupy (output) do b aze dat periodicky vytv aren e kontroln body dobu obnovy zkr at b ehem vytv aren kontrolnho bodu nesm ej transakce d elat korekce dat, nesm zapisovat z aznamy do denku apod. ad c), v ypadek nastal po commit (T1) v denku je < T 0 start > i < T 0 commit >, provede se redo(t 0 ) v denku je < T 1 start > a < T 1 commit >, provede se redo(t 1 ) hodnoty A, B a C budou 950 a 2 050 a 600 pri periodick em vytv aren kontrolnch bod u se prov ad: v ystup vsech denkov ych z aznam u umsten ych v dan em okamziku v RAM z RAM (energeticky z avisl e pameti) do permanentn pameti v ystup vsech modikovan ych blok u vyr. pam. na disk (perm. pamet') v ystup z aznamu < checkpoint L > do denku (log) udrzovan eho v energeticky nez avisl e pameti L je seznam aktivnch transakc v dobe tvorby kontrolnho bodu Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 32 Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 33 Kontroln body, Checkpoints Prklad obnovy z kontrolnho bodu T i proveden e pred z apisem < checkpoint L > se neobnovuj pomoc redo, jejich v ysledek je souc ast dat kontrolnho bodu Obnova se t yk a pouze { aktivnch, tj. dosud neproveden ych transakc v okamziku vytv aren kontrolnho bodu a { vsech transakc n asledujcch po t echto transakcch Pro transakce nemajc v denku < commit > se provede undo Pro transakce majc v denku < commit > se provede redo v ysledek T 1 je obsazen y v kontrolnm bodu, nespoust se z adn a akce T 2 a T 4 jsou v dobe v ypadku jiz proveden e, T 3 a T 5 nejsou v dobe v ypadku proveden e, priprav se seznam undo a provede se redo T 4 a pak redo T 2 provede se undo T 5 a pak undo T 3 Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 34 Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 35

Algoritmus obnovy Nyn konecn e lze uv est podrobn ejs v yklad algoritm u obnovy po v ypadku Predpoklad { objekty modikovan e dosud neprovedenou transakc nelze modikovat jin ymi transakcemi dokud zmn en a transakce nestane provedenou nebo zkrachuje Nejprve si uk azeme n avrat transakce pri norm alnm b ehu, nejde o v ypadek, pouze zkrachovala transakce Eliminace ucink u zkrachoval e transakce, rollback Necht' dojde ke krachu transakce < T i > behem jej norm aln cinnosti, nejde o obnovu po v ypadku syst emu Ucinky zkrachoval e transakce algoritmus krachov an vrac: zpetne prohlz denk a hled a z aznamy < T i, X j, V 1, V 2 > do X j zapisuje V 1 a do denku se zapse redo-only z aznam < T i, X j, V 1 > tzv. kompenzacn z aznam v denku, zajist'uje nastaven origin aln hodnoty pri obnove ve f azi redo jakmile nalezne v denku z aznam < T i start >, zpetn e hled an zastav a do denku prid a < T i abort > v denku jsou nyn denice { jak modikac proveden ych transakc, { tak obnovy p uvodnch hodnot (eliminace ucink u zkrachoval ych transakc) Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 36 Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 37 Obnova po v ypadku syst emu, f aze redo algitmus obnovy postupuje od poslednho kontrolnho bodu denovan eho v denku z aznamem < checkpoint L > vpred pripravuje seznam vracen ych transakc, undo, ten inici aln e nastav na seznam L ze z aznamu < checkpoint L > kdykoliv naraz na z aznam < T i, X j, V 1, V 2 >, zapse V 2 do X j kdykoliv naraz na redo-only z aznam < T i, X j, V 1 >, zapse se V 1 do X j kdykoliv naraz na < T i start >, prid a T i do seznamu undo kdykoliv naraz na < T i commit/abort > odstran T i ze seznamu undo na konci f aze redo obsahuje seznam undo seznam neproveden ych transakc v dob e v ypadku Obnova po v ypadku syst emu, f aze undo vrac se zp et ucinky vsech transakc uveden ych v seznamu undo algoritmus denk proch az zp etn e kdyz naraz na z aznam o modikaci objektu transakc uvedenou v seznamu undo vr at mu p uvodn hodnotu kdyz nalezne < T i start > transakce uveden e v seznamu undo, zapse do denku < T i abort > a T i odstran ze seznamu undo jakmile seznam undo vypr azdn, f aze undo konc, tj. nalezly se z aznamy < T i start > vsech transakc inici alne uveden ych v seznamu undo skoncila obnova, aplikacn uloha m uze pokracovat Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 38 Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 39

Pouzit denku pro undo a redo transakc Odkl adan a modikace b aze dat modikace dat v DB se v p ubehu resen T zaznamen avaj pouze do denku (do logu), a jsou udrzovan e pouze v pracovnch oblastech transakce v RAM operace z apisu do DB (output) se prov adej az pri proveden transakce (po dosazen bodu commit v zivot e transakce) v hotov e transakci, tj. pred provedenm t commit, jsou zmeny proveden e pouze v lok aln pracovnm prostoru transakce behem prov aden t commit se trvale prm ym z apisem zaps do denku z aznamy o z apisech, a pot e se modikace zaps do datab aze pokud transakce krachne pred provedenm t commit, v datab azi se nic nezmenilo, nen nutn e pri obnove delat undo v ysledky transakc proveden ych pred v ypadkem se pri obnove podle denku reaplikuj, prov ad se redo n azev t eto varianty algoritmu obnovy { NO-UNDO/REDO algorithm Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 41 Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 40 Odkl adan a modikace b aze dat podrobneji predpokl ad ame s eriov e prov ad en transakc transakce zacn a zaps anm do denku z aznamu < T i start > operace write(x) zapse do denku z aznam o w-operaci < T i, X, V > V je nov a hodnota, origin al se nezaznamen av a (NO-UNDO/REDO) modikace X v DB se neprovedla okamzite, odlozila se kdyz se T i prohlasuje za provedenou (commited), { ctou se z aznamy o w-operacch z denku, { dokoncuj se (output) dosud odlozen e operace write, a { a teprve pot e se transakce st av a proveden a, do denku se zapisuje z aznam < T i commit > Odkl adan a modikace b aze dat Jestlize syst em vypadne pred commit transakce nebo kdyz transakce zkrachuje, informace v denku se ignoruje v ypadek syst emu b ehem korekce dat nevad, denk je pamatovan y ve stabiln pam eti, modikace lze zopakovat stav modikovan ych dat po v ypadku syst emu se obnovuje podle denku uchovan eho ve stabiln pam eti po v ypadku se transakce opakuje (redo) pouze kdyz byla proveden a, tj. v denku je < T i starts > i < T i commit > prov ad se Redo(T i ), ucinky proveden e transakce se obnovuj tj. pri obnove syst em obnovy proch az denk a pro kazd y z aznam < T i commit > v denku se provede Redo(T i ) Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 42 Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 43

Odkl adan a modikace b aze dat operace redo mus b yt idempotentn operac opakovan e proveden je ekvivalentn jednor azov emu proveden napr. prevod c astky z jednoho uctu na jin y ucet nen idempotentn nutn a vlastnost pro obnovu po poruse, ke kter e doslo behem obnovy Bezprostredn modikace b aze dat b aze dat se koriguje (output) bezprostredne po t e, co dosud neproveden a (tj. aktivn) transakce, provede write b aze dat se tedy modikuje jeste v dobe, kdy je transakce aktivn, dosud neprovedla t commit aby bylo mozn e tento krok prp. eliminovat (undo), mus se do w-z aznamu v denku ud avat jak star a tak i nov a hodnota modikovan e datov e polozky z aznam o modikaci X se vytv ar pred modikac X operac write(x), pozadavek apriornho zaznamen av an z aznamy v denku se zapisuj prmo do permanentn pameti, bez vyrovn av an vsechny z aznamy v denku o modikaci X mus b yt zapsan e do denku drve, nez se provede modikace b aze dat operac output(b X ) Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 44 Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 45 Bezprostredn modikace b aze dat kdyz se T i prohlasuje za provedenou, do denku se zapisuje z aznam < T i commit > v ystup (output) modikovan ych blok u na disk lze prov est kdykoliv pred tm nebo po t e, co je transakce provedena dv e varianty obnovy pri bezprostredn modikaci b aze dat transakcn monitor zajist output vsech modikac pred provedenm t commit { nen potreba delat pri obnove REDO { varianta UNDO/NO-REDO algorithm transakcn monitor nezajist output vsech modikac pred provedenm t commit { je potreba delat pri obnove REDO { varianta UNDO/REDO algorithm { nejslozitejs technika obnovy, v yklad viz predn aska Jan Staudek, FI MU Brno PA150 { Obnova transakc po v ypadku 46