Professional Documents
Culture Documents
Transactions 7
Transactions 7
System Crashes
Immanuel Trummer
itrummer@cornell.edu
www.itrummer.org
Database Management
Systems (DBMS)
Application 1 Connections, Security, Utilities, ...
Application 2
DBMS Interface Query Processor
Query Parser Query Rewriter
Storage Manager
Data Access Buffer Manager
Buffer Pool
Data Pages
Buffer Pool
Data Pages
Update transaction
Transaction updates data
lastLSN
Update transaction
Transaction commits
status to committed
Update transaction
Transaction aborts
status to aborted
Remove from
Transaction ends
transaction table
Buffer Pool
Data Pages
Buffer Pool
Data Pages
Update PageLSN
Data update
in memory
PageLSN is copied
Page Written to Disk
to disk
Buffer Pool
Data Pages
Buffer Pool
Data Pages
Buffer Pool
Data Pages
Update to
Scenario
FlushedLSN
Log written to
Update
hard disk until
FlushedLSN to X
LSN X
Page LastLSN
- 0 - 0 - 0 - 0
Buffer Pool
Data Pages
Page LastLSN
- 0 - 0 - 0 - 0
Buffer Pool
Data Pages
Page LastLSN
P2 1 - 0 - 0 - 0
Buffer Pool
Data Pages
P2 1 - 0 - 0 - 0
Buffer Pool
Data Pages
P2 1 P5 2 - 0 - 0
Buffer Pool
Data Pages
Buffer Pool
Data Pages
Buffer Pool
Data Pages
Data Pages
Data Pages
P2 3 P5 2 - 0 - 0
Buffer Pool
P2 3 P5 2 - 0 - 0
Buffer Pool
Buffer Pool
Buffer Pool
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 0
1: T1 Updates P2
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Run Time)
T-Table DP Table Log Tail
T1, Running, 7 P2, 1 8: T1 Updates P6
Buffer Pool
Replace
FlushedLSN: 7 Main Memory (Volatile)
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Run Time)
T-Table DP Table Log Tail
T1, Running, 7 P2, 1 8: T1 Updates P6
Buffer Pool
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
Outlook
• Redo phase
• Undo phase
Active at Crash
Increasing LSNs
Smallest recLSN
in DP Table
Redo
Buffer Pool
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Analysis)
T-Table DP Table Log Tail
T1, Running, 7 P2, 1 8: T1 Updates P6
Crash!
P7, 6
P2 3 P5 2 P7 6 P6 8
Buffer Pool
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Analysis)
T-Table DP Table Log Tail
Page LastLSN
- 0 - 0 - 0 - 0
Buffer Pool
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Analysis)
T-Table DP Table Log Tail
T1, Running, 1 P2, 1
Page LastLSN
- 0 - 0 - 0 - 0
Buffer Pool
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Analysis)
T-Table DP Table Log Tail
T1, Running, 1 P2, 1
- 0 - 0 - 0 - 0
Buffer Pool
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Analysis)
T-Table DP Table Log Tail
T1, Running, 3 P2, 1
- 0 - 0 - 0 - 0
Buffer Pool
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Analysis)
T-Table DP Table Log Tail
T1, Running, 3 P2, 1
- 0 - 0 - 0 - 0
Buffer Pool
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Analysis)
T-Table DP Table Log Tail
T1, Running, 3 P2, 1
- 0 - 0 - 0 - 0
Buffer Pool
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Analysis)
T-Table DP Table Log Tail
T1, Running, 3 P2, 1
Buffer Pool
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Analysis)
T-Table DP Table Log Tail
T1, Running, 7 P2, 1
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
Redo Phase
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Redo)
T-Table DP Table Log Tail
T1, Running, 7 P2, 1
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Redo)
T-Table DP Table Log Tail
T1, Running, 7 P2, 1
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Redo)
T-Table DP Table Log Tail
T1, Running, 7 P2, 1
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Redo)
T-Table DP Table Log Tail
T1, Running, 7 P2, 1
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Redo)
T-Table DP Table Log Tail
T1, Running, 7 P2, 1
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Redo)
T-Table DP Table Log Tail
T1, Running, 7 P2, 1
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Redo)
T-Table DP Table Log Tail
T1, Running, 7 P2, 1
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Redo)
T-Table DP Table Log Tail
T1, Running, 7 P2, 1
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Redo)
T-Table DP Table Log Tail
T1, Running, 7 P2, 1
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Redo)
T-Table DP Table Log Tail
T1, Running, 7 P2, 1
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Redo)
T-Table DP Table Log Tail
T1, Running, 7 P2, 1
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
Do We Need To Redo This ... ? 7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
Undo Phase
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
PrevLSNs
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Undo)
T-Table DP Table Log Tail
T1, Running, 7 P2, 1
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
PrevLSNs
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Undo)
T-Table DP Table Log Tail
T1, Running, 8 P2, 1 8: CLR T1 P8
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
PrevLSNs
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Undo)
T-Table DP Table Log Tail
T1, Running, 8 P2, 1 8: CLR T1 P8
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
PrevLSNs
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Undo)
T-Table DP Table Log Tail
T1, Running, 8 P2, 1 8: CLR T1 P8
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
PrevLSNs
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Undo)
T-Table DP Table Log Tail
T1, Running, 8 P2, 1 8: CLR T1 P8
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
PrevLSNs
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Undo)
T-Table DP Table Log Tail
T1, Running, 10 P2, 1 8: CLR T1 P8
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
PrevLSNs
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Undo)
T-Table DP Table Log Tail
T1, Running, 10 P2, 1 8: CLR T1 P8
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
PrevLSNs
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
ARIES Example (Undo)
T-Table DP Table Log Tail
T1, Running, 10 P2, 1 8: CLR T1 P8
P1 0 P2 0 P3 0 P4 0 P5 0 P6 0 P7 0 P8 7
1: T1 Updates P2
PrevLSNs
2: T2 Updates P5
3: T1 Updates P2
Data Pages
4: T2 Commits
5: T2 End
6: T3 Updates P7
7: T1 Updates P8
Slides by Immanuel Trummer, Cornell University
Crash During Recovery?
• ARIES can deal with failures during any recovery phase