0% found this document useful (0 votes)
59 views

Crash Recovery: Transaction

The document discusses transaction recovery techniques in database management systems. It describes undo logging and redo logging approaches, how they are implemented using transaction logs, and the recovery procedures for each. Checkpointing is also covered as a technique to minimize recovery time by restarting from the latest checkpoint instead of the beginning.

Uploaded by

hhtvnpt
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
59 views

Crash Recovery: Transaction

The document discusses transaction recovery techniques in database management systems. It describes undo logging and redo logging approaches, how they are implemented using transaction logs, and the recovery procedures for each. Checkpointing is also covered as a technique to minimize recovery time by restarting from the latest checkpoint instead of the beginning.

Uploaded by

hhtvnpt
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

Crash Recovery

Vu Tuyet Trinh
[email protected]

Department of Information Systems, Faculty of Information Technology


Hanoi University of Technology

Transaction

collection of action that preserve consistency

Consistent DB T Consistent DB

with assumption
IF T starts with consistent state +
T executes in isolation
THEN T leaves consistent state

1
How can constraints be violated?
Transaction bug
DBMS bug
Hardware failure
e.g., disk crash
Data sharing
e.g., T1 and T2 in parallel

Failures
Events Desired
Undesired Expected
Unexpected

processor
CPU
memory disk

M D

2
Recovery
Maintaining the consistency of DB by ROLLBACK to the
last consistency state.

Ensuring 2 properties
Atomic
Durability

Using LOG

Transaction Log
A sequence of log record keeping trace of
actions executed by DBMS
<start T>
Log the beginning of the transaction execution
<commit T>
transaction is already finished
<abort T>
Transaction is calcel
<T, X, v, w>
Transaction makes an update actio, before update X=v, after
update x = w

3
Transaction Log
Handled in main memory and put to external
memory (disk) when possible

A = 8 16
B = 8 16 Data
Actions Log Log

Disk
Memory

Checkpoint
Definition:
moment where intermediate results and a log record are saved
to disk.
being initiated at specified intervals
Objective
minimize the amount of time and effort wasted when restart
the process can be restarted from the latest checkpoint rather
than from the beginning.
Log record
<checkpoint> or <ckpt>

4
Undo-logging
Step Action t Mem A Mem B Disk A Disk B Mem Log
1 <start T>
2 Read(A,t) 8 8 8 8
3 t:=t*2 16 8 8 8
4 Write(A,t) 16 16 8 8 <T, A, 8>
5 Read(B,t) 8 16 8 8 8
6 t:=t*2 16 16 8 8 8
7 Write(B,t) 16 16 16 8 8 <T, B, 8>
8 Flush log
9 Output(A) 16 16 16 16 8
10 Output(B) 16 16 16 16 16
11 <commit T>
12 Flush log

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

5
Undo Logging Recovery Rules
Let S is set of unfinished transactions
<start Ti> in log
<commit Ti> or <abort Ti> is not in log
For each <Ti, X, v> in log
If Ti S then - Write(X, v)
- Output(X)
For each Ti S
Write <abort Ti> to log

Undo-Logging & Checkpoint


<start T1> <start T1>
<T1, A, 5> <T1, A, 5>
<start T2> <start T2>
<T2, B, 10> <T2, B, 10>
<T2, C, 15> <start ckpt (T1,T2)>
<T2, D, 20> <T2, C, 15>
<commit T1> <start T3>
<commit T2> <T1, D, 20>
<checkpoint> <commit T1>
<start T3> <T3, E, 25>
<T3, E, 25> <commit T2>
<T3, F, 30> <end ckpt>
<T3, F, 30>
scan scan

6
Redo-logging
Step Action t Mem A Mem B Disk A Disk B Mem Log
1 <start T>
2 Read(A,t) 8 8 8 8
3 t:=t*2 16 8 8 8
4 Write(A,t) 16 16 8 8 <T, A, 16>
5 Read(B,t) 8 16 8 8 8
6 t:=t*2 16 16 8 8 8
7 Write(B,t) 16 16 16 8 8 <T, B, 16>
8 <commit T>
9 Flush log
10 Output(A) 16 16 16 16 8
11 Output(B) 16 16 16 16 16
<T, end>

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
(4) Write END record after DB updates flushed to disk

7
Redo-logging Recovery Rules
Let S = set of transactions with
<Ti, commit> in log
no <Ti, end> in log
For each <Ti, X, v> in log, in forward order (earliest
latest)
If Ti S then write(X, v)
output(X)
For each Ti S
write <Ti, end>

Redo Logging & Checkpoint


<start T1>
<start T1>
<T1, A, 5>
<T1, A, 5>
<start T2>
<start T2>
<commit T1>
<commit T1>
<T2, B, 10>
<T2, B, 10>
<start ckpt (T2)>
<start ckpt (T2)>
<T2, C, 15>
<T2, C, 15>
<start T3>
<start T3>
<T3, D, 20>
<T3, D, 20>
<end ckpt>
scan
<commit T2>
<commit T3>

scan

8
Discussion

Undo Logging
need to write to disk as soon transaction finishes
Access disk

Redo Logging
need to keep all modified blocks in memory until commit
Use memory

Undo/Redo Loggin
Step Action t Mem A Mem B Disk A Disk B Mem Log
1 <start T>
2 Read(A,t) 8 8 8 8
3 t:=t*2 16 8 8 8
4 Write(A,t) 16 16 8 8 <T, A, 8, 16>
5 Read(B,t) 8 16 8 8 8
6 t:=t*2 16 16 8 8 8
7 Write(B,t) 16 16 16 8 8 <T, B, 8, 16>
8 Flush log
9 Output(A) 16 16 16 16 8
10 <commit T>
11 Output(B) 16 16 16 16 16

9
Undo/Redo Logging Rules
Page X can be flushed before or after T commit
Log record flushed before corresponding
updated page (WAL)
Flush at commit (log only)

Undo/Redo Logging & Checkpoint


<start T1>
<start T1> <T1, A, 4, 5>
<T1, A, 4, 5> <start T2>
<start T2> <commit T1>
<commit T1> <start T3>
<T2, B, 9, 10> <T2, B, 9, 10>
<start ckpt (T2)> <T3, E, 6, 7>
<T2, C, 14, 15> <start ckpt (T2, T3)>
<start T3> <T2, C, 14, 15>
<T3, D, 19, 20> <T3, D, 19, 20>
<end ckpt> <end ckpt>
<commit T2> <commit T2>

scan
scan

10
Undo/Redo Logging Recovery Rules
Backwards pass (end of log latest valid checkpoint
start)
Constructing set S of committed transactions
undo actions of transactions not in S
undo pending transactions
follow undo chains for transactions in (checkpoint active
list) S
Forward pass (latest checkpoint start end of log)
redo actions of S transactions

11

You might also like