recovery - brown university · log-based recovery fi fi. log examples transaction t1 log read(a)...
TRANSCRIPT
![Page 1: Recovery - Brown University · Log-based Recovery fi fi. Log Examples Transaction T1 Log Read(A) A = A - 50 Write(A) Read(B) B = B + 50 Write(B)](https://reader034.vdocuments.us/reader034/viewer/2022050118/5f4f1a87a4d923261f785dd8/html5/thumbnails/1.jpg)
Recovery
![Page 2: Recovery - Brown University · Log-based Recovery fi fi. Log Examples Transaction T1 Log Read(A) A = A - 50 Write(A) Read(B) B = B + 50 Write(B)](https://reader034.vdocuments.us/reader034/viewer/2022050118/5f4f1a87a4d923261f785dd8/html5/thumbnails/2.jpg)
○○
○○
○○
Why Recovery?
![Page 3: Recovery - Brown University · Log-based Recovery fi fi. Log Examples Transaction T1 Log Read(A) A = A - 50 Write(A) Read(B) B = B + 50 Write(B)](https://reader034.vdocuments.us/reader034/viewer/2022050118/5f4f1a87a4d923261f785dd8/html5/thumbnails/3.jpg)
Recovery algorithms
●
●
![Page 4: Recovery - Brown University · Log-based Recovery fi fi. Log Examples Transaction T1 Log Read(A) A = A - 50 Write(A) Read(B) B = B + 50 Write(B)](https://reader034.vdocuments.us/reader034/viewer/2022050118/5f4f1a87a4d923261f785dd8/html5/thumbnails/4.jpg)
Log-based Recovery
fi fi
![Page 5: Recovery - Brown University · Log-based Recovery fi fi. Log Examples Transaction T1 Log Read(A) A = A - 50 Write(A) Read(B) B = B + 50 Write(B)](https://reader034.vdocuments.us/reader034/viewer/2022050118/5f4f1a87a4d923261f785dd8/html5/thumbnails/5.jpg)
Log ExamplesTransaction T1 Log
Read(A)A = A - 50Write(A)Read(B)B = B + 50Write(B)
<T1, start><T1, A, 1000, 950><T1, B, 2000, 2050><T1, commit>
![Page 6: Recovery - Brown University · Log-based Recovery fi fi. Log Examples Transaction T1 Log Read(A) A = A - 50 Write(A) Read(B) B = B + 50 Write(B)](https://reader034.vdocuments.us/reader034/viewer/2022050118/5f4f1a87a4d923261f785dd8/html5/thumbnails/6.jpg)
Deferred Database Modification
●
●●
![Page 7: Recovery - Brown University · Log-based Recovery fi fi. Log Examples Transaction T1 Log Read(A) A = A - 50 Write(A) Read(B) B = B + 50 Write(B)](https://reader034.vdocuments.us/reader034/viewer/2022050118/5f4f1a87a4d923261f785dd8/html5/thumbnails/7.jpg)
Immediate Database Modification
●●●●
![Page 8: Recovery - Brown University · Log-based Recovery fi fi. Log Examples Transaction T1 Log Read(A) A = A - 50 Write(A) Read(B) B = B + 50 Write(B)](https://reader034.vdocuments.us/reader034/viewer/2022050118/5f4f1a87a4d923261f785dd8/html5/thumbnails/8.jpg)
Immediate Database Modification
fi
![Page 9: Recovery - Brown University · Log-based Recovery fi fi. Log Examples Transaction T1 Log Read(A) A = A - 50 Write(A) Read(B) B = B + 50 Write(B)](https://reader034.vdocuments.us/reader034/viewer/2022050118/5f4f1a87a4d923261f785dd8/html5/thumbnails/9.jpg)
Practice<T0, start> <T0, A, 1000, 950> <T0, B, 2000, 2050>
<T0, start> <T0, A, 1000, 950> <T0, B, 2000, 2050> <T0, commit> <T1, start> <T1, C, 700, 600>
<T0, start> <T0, A, 1000, 950> <T0, B, 2000, 2050> <T0, commit> <T1, start> <T1, C, 700, 600> <T1, commit>
![Page 10: Recovery - Brown University · Log-based Recovery fi fi. Log Examples Transaction T1 Log Read(A) A = A - 50 Write(A) Read(B) B = B + 50 Write(B)](https://reader034.vdocuments.us/reader034/viewer/2022050118/5f4f1a87a4d923261f785dd8/html5/thumbnails/10.jpg)
Practice<T0, start> <T0, A, 1000, 950> <T0, B, 2000, 2050>
<T0, start> <T0, A, 1000, 950> <T0, B, 2000, 2050> <T0, commit> <T1, start> <T1, C, 700, 600>
<T0, start> <T0, A, 1000, 950> <T0, B, 2000, 2050> <T0, commit> <T1, start> <T1, C, 700, 600> <T1, commit>
![Page 11: Recovery - Brown University · Log-based Recovery fi fi. Log Examples Transaction T1 Log Read(A) A = A - 50 Write(A) Read(B) B = B + 50 Write(B)](https://reader034.vdocuments.us/reader034/viewer/2022050118/5f4f1a87a4d923261f785dd8/html5/thumbnails/11.jpg)
Checkpoint●●
(already committed)
![Page 12: Recovery - Brown University · Log-based Recovery fi fi. Log Examples Transaction T1 Log Read(A) A = A - 50 Write(A) Read(B) B = B + 50 Write(B)](https://reader034.vdocuments.us/reader034/viewer/2022050118/5f4f1a87a4d923261f785dd8/html5/thumbnails/12.jpg)
Recovery With Concurrent Transactions
fi
![Page 13: Recovery - Brown University · Log-based Recovery fi fi. Log Examples Transaction T1 Log Read(A) A = A - 50 Write(A) Read(B) B = B + 50 Write(B)](https://reader034.vdocuments.us/reader034/viewer/2022050118/5f4f1a87a4d923261f785dd8/html5/thumbnails/13.jpg)
Recovery With Concurrent Transactions
![Page 14: Recovery - Brown University · Log-based Recovery fi fi. Log Examples Transaction T1 Log Read(A) A = A - 50 Write(A) Read(B) B = B + 50 Write(B)](https://reader034.vdocuments.us/reader034/viewer/2022050118/5f4f1a87a4d923261f785dd8/html5/thumbnails/14.jpg)
PracticeLOG:<T0 start> <T0, A, 0, 10> <T0 commit> <T1 start> <T1, B, 0, 10> <T2 start> <T2, C, 0, 10> <T2, C, 10, 20> <checkpoint {T1, T2}> <T3 start> <T3, A, 10, 20> <T3, D, 0, 10> <T3 commit>
![Page 15: Recovery - Brown University · Log-based Recovery fi fi. Log Examples Transaction T1 Log Read(A) A = A - 50 Write(A) Read(B) B = B + 50 Write(B)](https://reader034.vdocuments.us/reader034/viewer/2022050118/5f4f1a87a4d923261f785dd8/html5/thumbnails/15.jpg)
PracticeLOG:<T0 start> <T0, A, 0, 10> <T0 commit> <T1 start> <T1, B, 0, 10> <T2 start> <T2, C, 0, 10> <T2, C, 10, 20> <checkpoint {T1, T2}> <T3 start> <T3, A, 10, 20> <T3, D, 0, 10> <T3 commit>
Undo-list: T1, T2Redo-list: T3
![Page 16: Recovery - Brown University · Log-based Recovery fi fi. Log Examples Transaction T1 Log Read(A) A = A - 50 Write(A) Read(B) B = B + 50 Write(B)](https://reader034.vdocuments.us/reader034/viewer/2022050118/5f4f1a87a4d923261f785dd8/html5/thumbnails/16.jpg)
PracticeLOG:<T0 start> <T0, A, 0, 10> <T0 commit> <T1 start> <T1, B, 0, 10> <T2 start> <T2, C, 0, 10> <T2, C, 10, 20> <checkpoint {T1, T2}> <T3 start> <T3, A, 10, 20> <T3, D, 0, 10> <T3 commit>
Undo-list: T1, T2Redo-list: T3
Undo:Set C to 10Set C to 0Set B to 0
![Page 17: Recovery - Brown University · Log-based Recovery fi fi. Log Examples Transaction T1 Log Read(A) A = A - 50 Write(A) Read(B) B = B + 50 Write(B)](https://reader034.vdocuments.us/reader034/viewer/2022050118/5f4f1a87a4d923261f785dd8/html5/thumbnails/17.jpg)
PracticeLOG:<T0 start> <T0, A, 0, 10> <T0 commit> <T1 start> <T1, B, 0, 10> <T2 start> <T2, C, 0, 10> <T2, C, 10, 20> <checkpoint {T1, T2}> <T3 start> <T3, A, 10, 20> <T3, D, 0, 10> <T3 commit>
Undo-list: T1, T2Redo-list: T3
Undo:Set C to 10Set C to 0Set B to 0
Redo:Set A to 20Set D to 10
![Page 18: Recovery - Brown University · Log-based Recovery fi fi. Log Examples Transaction T1 Log Read(A) A = A - 50 Write(A) Read(B) B = B + 50 Write(B)](https://reader034.vdocuments.us/reader034/viewer/2022050118/5f4f1a87a4d923261f785dd8/html5/thumbnails/18.jpg)
PracticeLOG:<T0 start> <T0, A, 0, 10> <T0 commit> <T1 start> <T1, B, 0, 10> <T2 start> <T2, C, 0, 10> <T2, C, 10, 20> <checkpoint {T1, T2}> <T3 start> <T3, A, 10, 20> <T3, D, 0, 10> <T3 commit>
Undo-list: T1, T2Redo-list: T3
Undo:Set C to 10Set C to 0Set B to 0
Redo:Set A to 20Set D to 10
After recovery:A: 20, B: 0, C:0, D: 10