ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP12A 3 13B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B...
-
Upload
javen-derham -
Category
Documents
-
view
222 -
download
0
Transcript of ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP12A 3 13B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B...
ARIES Example
LSN Type Tid PrevLSN Data1 SOT 12 UP 1 2 A3 UP 1 3 B4 CP5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 610 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E
1
2
3
WA,B
CP
WC
WD
WB
WA
WE
CRASH
Flush
ARIES - What is Logged
• “Physiological Logging”– REDO Records
• Updates to data pages and index pages are logged separately
• But may use operational logging (e.g., INCREMENT/DECREMENT)– Because escrow locks allow multiple writers
– UNDO Records are Purely Logical• Only one record for index and data pages
• May use operational logging
ARIES Data Structures
12
3
WA,B
CP
WC
WD
WB
WA
WE
CRASH
Flush
lastLSN TID
1 1
xactionTablepgNo recLSN
dirtyPgTable
xactionTable
dirtyPgTable
Checkpoint
Page pageLSN
A ?
B ?
C ?
D ?
E ?
Disk
lastLSN TID
2 1
lastLSN TID
3 1
lastLSN TID
3 1
5 3
lastLSN TID
13 3
pgNo recLSN
A 2
B 3
pgNo recLSN
A 2
B 3
C 6
Page pageLSN
A 2
B 3
C 6
D ?
E ?
pgNo recLSNpgNo recLSN
D 8
pgNo recLSN
D 8
B 10
pgNo recLSN
D 8
B 10
A 11
pgNo recLSN
D 8
B 10
A 11
E 13
xactionTable 3 - 1
dirtyPgTable A - 2, B - 3
Crash Recovery
• 3 Phases– Analysis
• Rebuild data structures• Determine winners & losers
– Redo• “Repeat history”
• Why?
– Undo• Undo Losers
AnalysisLSN Type Tid PrevLSN Data
1 SOT 12 UP 1 2 A3 UP 1 3 B4 CP5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 610 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E
AnalysisLSN Type Tid PrevLSN Data
5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 610 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E
lastLSN TID
3 1
pgNo recLSN
A 2
B 3
Page pageLSN
A 2
B 3
C 6
D ?
E ?
xactionTable dirtyPgTableDisk
AnalysisLSN Type Tid PrevLSN Data
5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 610 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E
lastLSN TID
3 1
5 3
pgNo recLSN
A 2
B 3
Page pageLSN
A 2
B 3
C 6
D ?
E ?
xactionTable dirtyPgTableDisk
AnalysisLSN Type Tid PrevLSN Data
5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 610 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E
lastLSN TID
3 1
5 3
pgNo recLSN
A 2
B 3
C 6
Page pageLSN
A 2
B 3
C 6
D ?
E ?
xactionTable dirtyPgTableDisk
AnalysisLSN Type Tid PrevLSN Data
5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 610 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E
lastLSN TID
3 1
5 3
7 2
pgNo recLSN
A 2
B 3
C 6
Page pageLSN
A 2
B 3
C 6
D ?
E ?
xactionTable dirtyPgTableDisk
AnalysisLSN Type Tid PrevLSN Data
5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 610 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E
lastLSN TID
3 1
5 3
7 2
pgNo recLSN
A 2
B 3
C 6
D 8
Page pageLSN
A 2
B 3
C 6
D ?
E ?
xactionTable dirtyPgTableDisk
AnalysisLSN Type Tid PrevLSN Data
5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 610 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E
lastLSN TID
13 3
pgNo recLSN
A 2
B 3
C 6
D 8
E 13
Page pageLSN
A 2
B 3
C 6
D ?
E ?
xactionTabledirtyPgTable Disk
Not the same as just beforecrash (note disk state)
Redo
• Where to begin?– Checkpoint?
– Min(recLSN)!
• What to REDO– Everything?
• Slow• Problematic if using operational (escrow) logging
– Redo an update UNLESS:1.
2.
3.
pgNo recLSN
A 2
B 3
C 6
D 8
E 13
dirtyPgTable
Page pageLSN
A 2
B 3
C 6
D ?
E ?
Disk
Redo Example
LSN Type Tid PrevLSN Data1 SOT 12 UP 1 2 A3 UP 1 3 B4 CP5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 6
10 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E
pgNo recLSN
A 2
B 3
C 6
D 8
E 13
Redo UNLESS•Page is not in dirtyPgTable•If LSN < recLSN•If LSN <= pageLSN
DirtyPgTable
Page pageLSN
A 2
B 3
C 6
D ?
E ?
Disk
pgNo recLSN
B 3
C 6
D 8
E 13
Redo Example
LSN Type Tid PrevLSN Data1 SOT 12 UP 1 2 A3 UP 1 3 B4 CP5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 6
10 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E
pgNo recLSN
B 3
C 6
D 8
E 13
Redo UNLESS•Page is not in dirtyPgTable•If LSN < recLSN•If LSN <= pageLSN
DirtyPgTable
Page pageLSN
A 2
B 3
C 6
D ?
E ?
Disk
pgNo recLSN
C 6
D 8
E 13
Redo Example
LSN Type Tid PrevLSN Data1 SOT 12 UP 1 2 A3 UP 1 3 B4 CP5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 6
10 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E
pgNo recLSN
C 6
D 8
E 13
Redo UNLESS•Page is not in dirtyPgTable•If LSN < recLSN•If LSN <= pageLSN
DirtyPgTable
Page pageLSN
A 2
B 3
C 6
D ?
E ?
Disk
pgNo recLSN
D 8
E 13
Redo Example
LSN Type Tid PrevLSN Data1 SOT 12 UP 1 2 A3 UP 1 3 B4 CP5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 6
10 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E
pgNo recLSN
D 8
E 13
Redo UNLESS•Page is not in dirtyPgTable•If LSN < recLSN•If LSN <= pageLSN
DirtyPgTable
Page pageLSN
A 2
B 3
C 6
D ?
E ?
Disk
Redo Example
LSN Type Tid PrevLSN Data1 SOT 12 UP 1 2 A3 UP 1 3 B4 CP5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 6
10 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E
pgNo recLSN
D 8
E 13
Redo UNLESS•Page is not in dirtyPgTable•If LSN < recLSN•If LSN <= pageLSN
DirtyPgTable
Page pageLSN
A 2
B 3
C 6
D ?
E ?
Disk
pgNo recLSN
B 10
D 8
E 13
Redo Example
LSN Type Tid PrevLSN Data1 SOT 12 UP 1 2 A3 UP 1 3 B4 CP5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 6
10 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E
pgNo recLSN
B 10
D 8
E 13
Redo UNLESS•Page is not in dirtyPgTable•If LSN < recLSN•If LSN <= pageLSN
DirtyPgTable
Page pageLSN
A 2
B 3
C 6
D ?
E ?
Disk
pgNo recLSN
A 11
B 10
D 8
E 13
Redo Example
LSN Type Tid PrevLSN Data1 SOT 12 UP 1 2 A3 UP 1 3 B4 CP5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 6
10 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E
pgNo recLSN
A 11
B 10
D 8
E 13
Redo UNLESS•Page is not in dirtyPgTable•If LSN < recLSN•If LSN <= pageLSN
DirtyPgTable
Page pageLSN
A 2
B 3
C 6
D ?
E ?
Disk
State identical to pre-crash state
Undo
• Walk backwards, following prevLSNs to UNDO losers
LSN Type Tid PrevLSN Data1 SOT 12 UP 1 2 A3 UP 1 3 B4 CP5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 6
10 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E
lastLSN TID
13 3
xactionTable
Undo
• Walk backwards, following prevLSNs to UNDO losers
LSN Type Tid PrevLSN Data1 SOT 12 UP 1 2 A3 UP 1 3 B4 CP5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 6
10 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E
lastLSN TID
13 3
xactionTable
Undo
• Walk backwards, following prevLSNs to UNDO losers
LSN Type Tid PrevLSN Data1 SOT 12 UP 1 2 A3 UP 1 3 B4 CP5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 6
10 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E
lastLSN TID
13 3
xactionTable
•Why can we just blindly apply UNDOs?
UNDO Wrinkles
• Logical UNDO– Why?
• “Compensation Log Records” -- CLRs– Avoid repeating UNDO work– Why?
UNDO with CLRLSN Type Tid PrevLSN Data
5 SOT 3
6 UP 1 3 C
7 SOT 2
8 UP 2 7 D
9 EOT 1 6
10 UP 3 5 B
11 UP 2 8 A
12 EOT 2 11
13 UP 3 10 E
Losers: 3
UNDO with CLRLSN Type Tid PrevLSN Data
5 SOT 3
6 UP 1 3 C
7 SOT 2
8 UP 2 7 D
9 EOT 1 6
10 UP 3 5 B
11 UP 2 8 A
12 EOT 2 11
13 UP 3 10 E
UNDO with CLRLSN Type Tid PrevLSN Data
5 SOT 3
6 UP 1 3 C
7 SOT 2
8 UP 2 7 D
9 EOT 1 6
10 UP 3 5 B
11 UP 2 8 A
12 EOT 2 11
13 UP 3 10 E
14 CLR 3 E
UNDO with CLRLSN Type Tid PrevLSN Data
5 SOT 3
6 UP 1 3 C
7 SOT 2
8 UP 2 7 D
9 EOT 1 6
10 UP 3 5 B
11 UP 2 8 A
12 EOT 2 11
13 UP 3 10 E
14 CLR 3 10 E
UNDO with CLRLSN Type Tid PrevLSN Data
5 SOT 3
6 UP 1 3 C
7 SOT 2
8 UP 2 7 D
9 EOT 1 6
10 UP 3 5 B
11 UP 2 8 A
12 EOT 2 11
13 UP 3 10 E
14 CLR 3 10 E
15 CLR 3 5 B
UNDO with CLRLSN Type Tid PrevLSN Data
5 SOT 3
6 UP 1 3 C
7 SOT 2
8 UP 2 7 D
9 EOT 1 6
10 UP 3 5 B
11 UP 2 8 A
12 EOT 2 11
13 UP 3 10 E
14 CLR 3 10 E
15 CLR 3 5 B
16 EOT 3 -