Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Failure Recovery Introduction Undo Logging Redo Logging Source: slides by Hector Garcia-Molina.

Similar presentations


Presentation on theme: "1 Failure Recovery Introduction Undo Logging Redo Logging Source: slides by Hector Garcia-Molina."— Presentation transcript:

1 1 Failure Recovery Introduction Undo Logging Redo Logging Source: slides by Hector Garcia-Molina

2 2 Integrity or correctness of data uWould like data to be “accurate” or “correct” at all times EMP Name White Green Gray Age 52 3421 1

3 3 Integrity or consistency constraints uPredicates data must satisfy uExamples: wx is key of relation R wx  y holds in R wDomain(x) = {Red, Blue, Green}   is valid index for attribute x of R wno employee should make more than twice the average salary

4 4 Definition: uConsistent state: satisfies all constraints uConsistent DB: DB in consistent state

5 5 Constraints ( as we use here) may not capture “full correctness” Example 1 Transaction constraints uWhen salary is updated, new salary > old salary uWhen account record is deleted, balance = 0

6 6 Note: could be “emulated” by simple constraints, e.g., account Acct #….balancedeleted?

7 7 Example 2 Database should reflect real world DB Reality Constraints ( as we use here) may not capture “full correctness”

8 8  in any case, continue with constraints... Observation: DB cannot be consistent always! Example: a 1 + a 2 +…. a n = TOT ( constraint ) Deposit $100 in a 2 : a 2  a 2 + 100 TOT  TOT + 100

9 9 a 2 TOT.... 50.... 1000.... 150.... 1000.... 150.... 1100 Example: a 1 + a 2 +…. a n = TOT ( constraint ) Deposit $100 in a 2 : a 2  a 2 + 100 TOT  TOT + 100

10 10 Transaction: collection of actions that preserve consistency Consistent DBConsistent DB’ T

11 11 Big assumption: If T starts with consistent state + T executes in isolation  T leaves consistent state

12 12 Correctness (informally) uIf we stop running transactions, DB left consistent uEach transaction sees a consistent DB

13 13 How can constraints be violated? uTransaction bug uDBMS bug uHardware failure e.g., disk crash alters balance of account uData sharing e.g.: T1: give 10% raise to programmers T2: change programmers  systems analysts

14 14 How can we prevent/fix violations? uChapter 17: due to failures only uChapter 18: due to data sharing only uChapter 19: due to failures and sharing

15 15 Will not consider: uHow to write correct transactions uHow to write correct DBMS uConstraint checking & repair That is, solutions studied here do not need to know constraints

16 16 Chapter 17: Recovery uFirst order of business: Failure Model

17 17 Events Desired Undesired Expected Unexpected

18 18 Our failure model processor memory disk CPU M D

19 19 Desired events: see product manuals…. Undesired expected events: System crash - memory lost - cpu halts, resets Undesired Unexpected: Everything else! that’s it!!

20 20 Examples: uDisk data is lost uMemory lost without CPU halt uCPU implodes wiping out universe…. Undesired Unexpected: Everything else!

21 21 Is this model reasonable? Approach: Add low level checks + redundancy to increase probability model holds E.g., Replicate disk storage (stable store) Memory parity CPU checks

22 22 Second order of business: Storage hierarchy Memory Disk x x

23 23 Operations: uInput (x): block containing x  memory uOutput (x): block containing x  disk uRead (x,t): do input(x) if necessary t  value of x in block uWrite (x,t): do input(x) if necessary value of x in block  t

24 24 Key problem Unfinished transaction ExampleConstraint: A=B T 1 : A  A  2 B  B  2

25 25 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 memory disk 16 failure!

26 26 uNeed atomicity: execute all actions ofa transaction or none at all

27 27 One solution: undo logging (immediate modification) due to: Hansel and Gretel, 782 AD uImproved in 784 AD to durable undo logging

28 28 T: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 memory disk log Undo logging (Immediate modification) 16 16 16 16

29 29 One “complication” uLog is first written in memory uNot written to disk on every action memory DB Log A: 8 16 B: 8 16 Log: A: 8 B: 8 16 BAD STATE # 1

30 30 One “complication” uLog is first written in memory uNot written to disk on every action memory DB Log A: 8 16 B: 8 16 Log: A: 8 B: 8 16 BAD STATE # 2...

31 31 Undo logging rules (1) For every action generate undo log record (containing old value) (2) Before x is modified on disk, log records pertaining to x must be on disk (write ahead logging: WAL) (3) Before commit is flushed to log, all writes of transaction must be reflected on disk

32 32 Recovery rules: 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 T  S then - write (X, v) - output (X) (3) For each T  S do - write to log

33 33 What if failure during recovery? No problem!  Undo idempotent

34 34 To discuss: uRedo logging uUndo/redo logging, why both? uReal world actions uCheckpoints uMedia failures

35 35 Redo logging (deferred modification) T : 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 memory DB LOG 16 output 16

36 36 Redo logging rules (1) For every action, generate redo log record (containing new value) (2) Before X is modified on disk (DB), all log records for transaction that modified X (including commit) must be on disk (3) Flush log at commit

37 37 (1) Let S = set of transactions with in log (2) For each in log, in forward order (earliest  latest) do: - if T  S then Write(X, v) Output(X) optional Recovery rules: Redo logging


Download ppt "1 Failure Recovery Introduction Undo Logging Redo Logging Source: slides by Hector Garcia-Molina."

Similar presentations


Ads by Google