Chapter 15 Recovery System Table of Contents 1. Failure Classification 2. Storage Structure 3. Recovery and Atomicity 4. Log-Based Recovery 5. Shadow Paging 6. ARIES 7. Media Recovery Chapter 15-1 1
1. Failure Classification z Transaction Failure Logical Error: bad input, overflow, data not found System Error: deadlock z System Crash DBMSŽ OSN Ú (þ: ú) Volatile memoryn ªŸ z Media Failure Nonvolatile memoryn ªŸ Chapter 15-2 2. Storage Structure z Storage Types Volatile storage úò 6 system crash ÓÒ ªŸ þ: Main memory, Cache memory Nonvolatile storage System crashö Ójº ªŸ þ: Hard disk, Magnetic tape Stable storage ªš ÒN failureö Ójº ªŸ ReplicationÆ Nj S/W 2R bú Chapter 15-3 2
Data Access z Input(B)6 Output(B) input(a) B Main memory output(b) A B Disk Chapter 15-4 Data Access (Cont d) z Read(X)6 Write(X) Read(X, x i ): Xr sª ã x i Æ Vï Xr ö R zr S B X ö ¼: ³, input(b X ) B X SÆ Xr sª ã x i Æ Vï Write(X, x i ): ã x i N : XÆ Vï Xr ö R zr S B X ö ¼: ³, input(b X ) x i N : B X SN XÆ Vï òn: Output Write System crash ÓÒ recovery :Š Synchronous ION.? Chapter 15-5 3
3. Recovery and Atomicity Example Transaction: T0 read(a, a1) a1 = a1-50 write(a, a1) read(b, b1) b1 = b1 + 50 write(b, b1) write(a, a1) T0 Ú write(b, b1) output(a) output(b) 1 Memory Buffer A: 1000 950 B: 2000 2050 crash time No Problem z 1 ÆN Recovery Action T0 Ú: A is 900, not 950 T0 Ú @B: A = 950, B = 2000 Chapter 15-6 4. Log-Based Recovery z Update Log Record Transactionj update æ ÚV B¾Ú Ó' bf Transaction Óº, Data Item Óº Old value, New Value (Rî 'ŸÆ &r optional) z Log RecordN {N <T i start> <T i, X j, V 1, V 2 > <T i commit> <T i abort> Chapter 15-7 4
Deferred DB Modification z ' N : úæ 'Ö ªŸ: DB @B UNDO ~:Š -LogÆ old value &SV :Š ¼B <T0 start> <T0, A, 950> <T0, B, 2050> No recovery <T0 start> <T0, A, 950> <T0, B, 2050> <T0 commit> <T1 start> <T1, C, 600> REDO(T0) <T0 start> <T0, A, 950> <T0, B, 2050> <T0 commit> <T1 start> <T1, C, 600> <T1, commit> REDO(T0) REDO(T1) Chapter 15-8 Immediate DB Modification z ' N : úæ 'Ö ªŸ: DB V ~B UNDO6 REDO žf :Š -LogÆ old value &S <T0 start> <T0, A, 1000, 950> <T0, B, 2000, 2050> UNDO(T0) <T0 start> <T0, A, 1000, 950> <T0, B, 2000, 2050> <T0 commit> <T1 start> <T1, C, 700, 600> REDO(T0), UNDO(T1) <T0 start> <T0, A, 1000, 950> <T0, B, 2000, 2050> <T0 commit> <T1 start> <T1, C, 700, 600> <T1, commit> REDO(T0), REDO(T1) Chapter 15-9 5
Checkpoints z Problems at System Restart ªš Rî þjòv& f V ynö? övzn N Ú òš DBÆ jî z Checkpoint Steps Rî zrn žö Rî þjòú: Rî šbæ &S 'Ö fj& zr Žj Ú: šbæ &S <checkpoint> Rî þjòr Rî šbæ &S z òn CheckpointÏ>Æ r NN Ú Þ? Chapter 15-10 Checkpoint and System Restart Checkpoint System Crash T1 T2 T3 T4 T5 none redo redo undo undo Chapter 15-11 6
5. Shadow Paging z Paging A database is stored in a set of pages. Page table maintains the pointer of each page. 1 2 3 4 5 6 7 Page Table Pages on Disk n Chapter 15-12 Shadow PagingN F z Shadow Page Table vs. Current Page Table NN Ú òš Current Page TableÆ N :Â: Current Page Tablej šbæ ö Shadow Page Table 1 2 3 4 5 6 7 Pages on Disk Current Page Table 1 2 3 4 5 6 7 n n Chapter 15-13 7
Shadow PagingN F (Cont d) z Commit Procedure of a Transaction 'Ö žö fj& Žj Ú: šbæ &S Current Page Table: šbæ &S Current Page Table: Shadow Page TableR çs Page Table: ö šš ân& ³ Atomic Operation Chapter 15-14 Shadow Paging vs. Logging z Shadow PagingN Faster recovery - REDO6 UNDO ~:Š z Shadow PagingN Þ Data Fragmentation Garbage Collection :Š Fine Granularity Locking Æ Úv Overhead of Normal Transaction Processing z övzn Commercial DBMSŠ Logging Æ Chapter 15-15 8
6. ARIES z A Transaction Recovery Method Fine-Granularity Locking Æ Partial Rollback Æ Write Ahead Logging jÿ z ARIESN &î F Log Sequence Number (LSN) jÿ IndexÆ ör Logical Undo Æ Flexible Buffer Management: Steal & Not Force Fuzzy Checkpoint Æ Chapter 15-16 Data Structures of ARIES z Log Record Log Sequence Number (LSN) Type: Update, Commit, Compensation, Transaction Identifier Previous LSN (PrevLSN) Record Identifier Data: Value Logging / Operation Logging z Data Page Data + PageLSN Chapter 15-17 9
Data Structures (Cont d) z Transaction Table Transaction Identifier State: Prepared ( P ) or Un-prepared ( U ) LastLSN UndoNxtLSN z Dirty Pages Table Page Identifier RecoveryLSN Pageö dirty ÒR N BN LSN Pager ën& úr RîN starting point Chapter 15-18 Normal Processing z PageN recordr updatenš ò RecordÆ ör lock Š & n Pager bufferæ fix & X moder latch Record update Log recordr Ó'NÖ, in-memory log listæ Šö LogN LSN: PageN PageLSN :ÒÆ ö Page latch j & unfix (fix_count--) z Transaction Commit commit log Ó', log force, lock release Pending listn F Chapter 15-19 10
Normal Processing (Cont d) z Transaction Abort ò Writing rollback log record Rolling back the transaction to its beginning Discarding the pending actions list Releasing its lock z Fuzzy Checkpoint Begin_Checkpoint log record &S End_Checkpoint log record Ó' Transaction Table, DPT, End_Checkpoint log record &S Master recordæ Begin_Checkpoint logn LSN ö Chapter 15-20 Restart Processing RESTART(Master-Addr) 1. Restart-Analysis(Master-Addr, Trans-Table, DPT, RedoLSN) 2. Restart-Redo(RedoLSN, Trans-Table, DPT) 3. Buffer pool DPT = DPT; 4. Restart-Undo(Trans-Table) 5. Require locks for prepared transactions; 6. Checkpoint() 7. RETURN Chapter 15-21 11
7. Media Recovery z Recovery from a disk crash. z Independent failure mode magnetic tapes jÿ Periodic dump of transaction-consistent state of database is much more lengthy than checkpoints. z Media Recovery: Archival Dump + Redo LOGs Chapter 15-22 12