Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

PA152Notes 081 CS 245: Database System Principles Notes 08: Failure Recovery Hector Garcia-Molina Pavel Rychlý.

Podobné prezentace


Prezentace na téma: "PA152Notes 081 CS 245: Database System Principles Notes 08: Failure Recovery Hector Garcia-Molina Pavel Rychlý."— Transkript prezentace:

1

2 PA152Notes 081 CS 245: Database System Principles Notes 08: Failure Recovery Hector Garcia-Molina Pavel Rychlý

3 PA152Notes 082 Integrita nebo správnost dat Chtěli bychom, aby data byla stále „bezesporná“ a „správná“. EMP Name White Green Gray Age 52 3421 1

4 PA152Notes 083 Integritní omezení Predikáty, které musí data splňovat Příklady: - x je klíčem relace R - v R platí závislost x  y - Domain(x) = {Red, Blue, Green}  je platný index atributu x v R - žádný zaměstnanec by neměl mít více než dvojnásobek průměrného platu

5 PA152Notes 084 Definice: Konzistentní stav: splňuje všechna omezení Konzistentní DB: DB v konzistentním stavu

6 PA152Notes 085 Omezení ( jak je používáme zde) nemusí zajistit „plnou správnost“ Příklad 1 Transakční omezení Pokud měníme plat: new salary > old salary Pro smazání bankovního účtu musí platit: balance = 0

7 PA152Notes 086 Example 2 Databáze by měla odpovídat skutečnému světu. DB Realita Omezení ( jak je používáme zde) nemusí zajistit „plnou správnost“

8 PA152Notes 087  v každém případě pokračuj s kontrolou podmínek Pozorování: DB nemůže být konzistentní stále. Příklad: a 1 + a 2 +…. a n = TOT ( constraint ) Deposit $100 in a 2 : a 2  a 2 + 100 TOT  TOT + 100

9 PA152Notes 088 a 2 TOT.... 50.... 1000.... 150.... 1000.... 150.... 1100 Příklad: a 1 + a 2 +…. a n = TOT ( constraint ) Deposit $100 in a 2 : a 2  a 2 + 100 TOT  TOT + 100

10 PA152Notes 089 Transakce: soubor akcí udržujících konzistenci Consistent DBConsistent DB’ T

11 PA152Notes 0810 Velký předpoklad: Pokud T začíná v konzistentním stavu a T běží samostatně  T končí také v konzistentním stavu

12 PA152Notes 0811 Správnost (neformálně) Pokud přerušíme běžící transakci, DB zůstane conzistentní Každá transakce vidí konzistení DB

13 PA152Notes 0812 Jak může dojít k poruše konzistence? Chyba transakce Chyba DBMS Výpadek Hardwaru např., výpadek disku poruší stav účtu na disku Sdílení Dat např.: T1: přidej 10% platu programátorům T2: změň programátor  systémový analytik

14 PA152Notes 0813 události žádoucí nežádoucí předpokládané nepředpokládané Model výpadků

15 PA152Notes 0814 Model výpadků procesor paměť disk CPU M D

16 PA152Notes 0815 Nežádoucí očekávané události: Krach systému - ztráta paměti - zastavení procesoru, reset

17 PA152Notes 0816 Příklady: Ztráta dat na disku Chyba paměti bez zastavení procesoru Imploze CPU pohlcující známý vesmír… Nežádoucí neočekávané: vše ostatní!

18 PA152Notes 0817 Je tento model rozumný? Přístup: Přidání kontrol na nejnižší úrovni + redundance zvýší pravděpodobnost zachování podmínek. Tj., Replikace disku (stabilní uložení) Paritní součty v paměti Kontrola CPU

19 PA152Notes 0818 Model běhu transakce: Organizace paměti Paměť Disk x x

20 PA152Notes 0819 Základní operace: Input (x): blok obsahující x  paměť Output (x): blok obsahující x  disk Read (x,t): Input(x) pokud je potřeba t  hodnota x v bloku Write (x,t): Input(x) pokud je potřeba hodnota x v bloku  t

21 PA152Notes 0820 Klíčový problém: nedokončené transakce PříkladOmezení: A=B T 1 : A  A  2 B  B  2

22 PA152Notes 0821 T 1 :Read (A,t); t  t  2 Write (A,t); Read (B,t); t  t  2 Write (B,t); Output (A); Output (B); A: 8 B: 8 A: 8 B: 8 paměť disk 16 výpadek!

23 PA152Notes 0822 Potřebujeme atomičnost: provedení všech akcí transakce nebo vůbec žádné

24 PA152Notes 0823 T 1 :Read (A,t); t  t  2 A=B Write (A,t); Read (B,t); t  t  2 Write (B,t); Output (A); Output (B); A:8 B:8 A:8 B:8 paměť disk žurnál Undo logging (Okamžitý zápis) 16 16 16

25 PA152Notes 0824 Drobná “komplikace” Žurnál je nejdříve vytvářen v paměti Nezapisuje se na disk při každé akci paměť DB žurnál A: 8 16 B: 8 16 Log: A: 8 B: 8 16 CHYBA # 1

26 PA152Notes 0825 Drobná “komplikace” Žurnál je nejdříve vytvářen v paměti Nezapisuje se na disk při každé akci paměť DB žurnál A: 8 16 B: 8 16 Log: A: 8 B: 8 16 CHYBA # 2...

27 PA152Notes 0826 Pravidla Undo logging (1) Pro každou akci vytvoř v žurnálu záznam obsahující starou hodnotu (2) Před změnou x na disku musí být na disku záznamy žurnálu týkající se x (write ahead logging: WAL) (3) Před vytvořením záznamu v žurnálu musí být všechny zápisy transakce uloženy na disku.

28 PA152Notes 0827 Pravidla obnovy: Undo logging For every Ti with in log: - If or in log, do nothing - Else For all in log: write (X, v) output (X ) Write to log  JE TO SPRÁVNĚ?

29 PA152Notes 0828 Pravidla obnovy: Undo logging (1) Let S = set of transactions with in log, but no (or ) record in log (2) For each in log, in reverse order (latest  earliest) do: - if Ti  S then - write (X, v) - output (X) (3) For each Ti  S do - write to log

30 PA152Notes 0829 Co v případě výpadku během obnovy? Žádný problém!  Undo je idempotentní

31 PA152Notes 0830 Redo logging (odložený zápis) T 1: Read(A,t); t t  2; write (A,t); Read(B,t); t t  2; write (B,t); Output(A); Output(B) A: 8 B: 8 A: 8 B: 8 paměť DB žurnál 16 output 16

32 PA152Notes 0831 Pravidla Redo logging (1) Pro každou akci vytvoř v žurnálu záznam obsahující novou hodnotu (2) Před změnou X na disku (DB) musí být na disku všechny záznamy žurnálu (včetně commit) pro transakci měnící X

33 PA152Notes 0832 For every Ti with in log: –For all in log: Write(X, v) Output(X) Pravidla obnovy: Redo logging  JE TO SPRÁVNĚ?

34 PA152Notes 0833 (1) Let S = set of transactions with in log (2) For each in log, in forward order (earliest  latest) do: - if Ti  S then Write(X, v) Output(X) volitelně Pravidla obnovy: Redo logging

35 PA152Notes 0834 Obnova je velice POMALÁ ! Redo log: PrvníT1 zapíše A,B Poslední záznamPotvrzeno před rokem záznam (1 rok starý)--> STÁLE potřebujeme pro obnovu!!... výpadek

36 PA152Notes 0835 Řešení: Kontrolní body (jednoduchá verze) Opakovaně: (1) Přestaň přijímat nové transakce (2) Počkej na ukončení všech transakcí (3) Ulož všechny záznamy žurnálu na disk (4) Ulož všechny bloky na disk (DB) (5) Zapiš záznam “checkpoint” na disk (log) (6) Pokračuj ve zpracování transakcí

37 PA152Notes 0836 Příklad: co dělat při obnově? Redo log (disk): Checkpoint Crash...

38 PA152Notes 0837 Hlavní nevýhody: Undo logging: ze zálohy DB nelze vytvořit aktuální stav DB Redo logging: všechny modifikované bloky musíme držet v paměti až do commitu zápisy na disk jsou vynuceny pravidly žurnálu a ne přístupem k datům

39 PA152Notes 0838 Řešení: undo/redo logging! Update 

40 PA152Notes 0839 Pravidlo undo/redo logging Před zapsáním elementu X na disk, musí být na disk zapsán záznam žurnálu (WAL) Obnova undo/redo logging Ukončené transakce zopakujeme (redo) od začátku Nedokončené transakce vrátíme (undo) od konce

41 PA152Notes 0840 Průběžné kontrolní body L O G začátky transakcízápis bloků s nezapsanými modifikacemi Start-ckpt active TR: T1,T2,... end ckpt...

42 PA152Notes 0841 Příklad co dělat při obnově? T1 nemá commit L O G T 1,- a... Ckpt T 1... Ckpt end... T1-bT1-b  Undo T 1 (undo a,b)

43 PA152Notes 0842 Example LOGLOG... T1aT1a T1bT1b T1cT1c T 1 cmt... ckpt- end ckpt-s T 1  Redo T1: (redo b,c)

44 PA152Notes 0843 Proces obnovy: Zpětný běh (konec žurnálu  začátek posledního k. bodu) –vytvoř množinu S potvrzených transakcí –vrať (undo) akce transakcí, které nejsou v S Vrácení trvajících transakcí –vrať řetězce akcí transakcí z (aktivní transakce kontrolního bodu) - S Dopředný běh (začátek posledního k. bodu  konce žurnálu) –opakuj akce transakcí z S backward pass forward pass start check- point

45 PA152Notes 0844 Akce reálného světa Př.: vybírání peněz a ATM Ti = a 1 a 2 …... a j …... a n $

46 PA152Notes 0845 Řešení (1) provedení akcí reálného světa po commitu (2) akce pokud možno idempotentní

47 PA152Notes 0846 ATM Give$$ (amt, Tid, time) $ give(amt) lastTid: time:

48 PA152Notes 0847 Výpadek média A: 16 Řešení: Kopie dat na nižší úrovni, záloha DB + žurnál

49 PA152Notes 0848 Example #3: DB Dump + Log záložní DB aktivní DB žurnál Při výpadku, – obnova DB ze zálohy – zopakuj Redo pro každou nedokončenou trasnakci

50 PA152Notes 0849 Kdy zahodit žurnál? check- point db dump last needed undo not needed for media recovery not needed for undo after system failure not needed for redo after system failure log time

51 PA152Notes 0850 Souhrn Konzistence dat Jeden zdroj problémů: - Logging - Redundancy Další zdroj problémů: Sdílení dat


Stáhnout ppt "PA152Notes 081 CS 245: Database System Principles Notes 08: Failure Recovery Hector Garcia-Molina Pavel Rychlý."

Podobné prezentace


Reklamy Google