cs 245: database system principles notes 10: more tp
DESCRIPTION
CS 245: Database System Principles Notes 10: More TP. Hector Garcia-Molina. Sections to Skim:. Section 18.8 [18.8] Sections 19.2 19.4, 19.5, 19.6 [none, i.e., read all Ch 19] [In the Second Edition, skip all of Chapter 20, and Sections 21.5, 21.6, 21.7, 22.2 through 22.7]. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/1.jpg)
CS 245 Notes 10 1
CS 245: Database System Principles
Notes 10: More TP
Hector Garcia-Molina
![Page 2: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/2.jpg)
CS 245 Notes 10 2
Sections to Skim:
• Section 18.8 [18.8]• Sections 19.2 19.4, 19.5, 19.6
[none, i.e., read all Ch 19]• [In the Second Edition, skip all of Chapter 20,
and Sections 21.5, 21.6, 21.7, 22.2 through 22.7]
![Page 3: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/3.jpg)
CS 245 Notes 10 3
Chapter 19 [19] More on transaction processingTopics:• Cascading rollback, recoverable
schedule• Deadlocks
– Prevention– Detection
• View serializability• Distributed transactions• Long transactions (nested,
compensation)
![Page 4: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/4.jpg)
CS 245 Notes 10 4
Example: Tj Ti
Wj(A) ri(A) Commit Ti
Abort Tj
Concurrency control & recovery
……
…
……
…
![Page 5: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/5.jpg)
CS 245 Notes 10 5
Example: Tj Ti
Wj(A) ri(A) Commit Ti
Abort Tj
Concurrency control & recovery
……
…
……
… Non-Persistent Commit (Bad!)
![Page 6: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/6.jpg)
CS 245 Notes 10 6
Example: Tj Ti
Wj(A) ri(A) Commit Ti
Abort Tj
Concurrency control & recovery
……
…
……
… Non-Persistent Commit (Bad!)
avoided byrecoverableschedules
![Page 7: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/7.jpg)
CS 245 Notes 10 7
Example: Tj Ti
Wj(A) ri(A) wi(B)
Abort Tj
[Commit Ti]
Concurrency control & recovery
……
…
……
…
![Page 8: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/8.jpg)
CS 245 Notes 10 8
Example: Tj Ti
Wj(A) ri(A) wi(B)
Abort Tj
[Commit Ti]
Concurrency control & recovery
……
…
……
… Cascading rollback (Bad!)
![Page 9: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/9.jpg)
CS 245 Notes 10 9
Example: Tj Ti
Wj(A) ri(A) wi(B)
Abort Tj
[Commit Ti]
Concurrency control & recovery
……
…
……
… Cascading rollback (Bad!)
avoided byavoids-cascading-rollback (ACR)schedules
![Page 10: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/10.jpg)
CS 245 Notes 10 10
• Schedule is conflict serializable• Tj Ti
• But not recoverable
![Page 11: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/11.jpg)
CS 245 Notes 10 11
• Need to make “final’ decision for each transaction:– commit decision - system guarantees
transaction will or has completed, no matter what
– abort decision - system guarantees transaction will or has been rolled back
(has no effect)
![Page 12: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/12.jpg)
CS 245 Notes 10 12
To model this, two new actions:
• Ci - transaction Ti commits• Ai - transaction Ti aborts
![Page 13: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/13.jpg)
CS 245 Notes 10 13
...
...
...
...
Back to example:
Tj Ti
Wj(A)ri(A)
Ci can we commit
here?
![Page 14: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/14.jpg)
CS 245 Notes 10 14
Definition
Ti reads from Tj in S (Tj S Ti) if
(1) wj(A) <S ri(A)
(2) aj <S ri(A) (< : does not precede)
(3) If wj(A) <S wk(A) <S ri(A) then
ak <S ri(A)
![Page 15: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/15.jpg)
CS 245 Notes 10 15
Definition
Schedule S is recoverable if whenever Tj S Ti and j i and Ci
Sthen Cj <S Ci
![Page 16: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/16.jpg)
CS 245 Notes 10 16
Note: in transactions, reads and writes precede commit or abort
If Ci Ti, then ri(A) < Ci
wi(A) < Ci
If Ai Ti, then ri(A) < Ai
wi(A) < Ai
• Also, one of Ci, Ai per transaction
![Page 17: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/17.jpg)
CS 245 Notes 10 17
How to achieve recoverable schedules?
![Page 18: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/18.jpg)
CS 245 Notes 10 18
With 2PL, hold write locks to commit (strict 2PL)
Tj Ti
Wj(A)
Cj
uj(A)ri(A)
...
...
...
...
...
...
...
![Page 19: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/19.jpg)
CS 245 Notes 10 19
With validation, no change!
![Page 20: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/20.jpg)
CS 245 Notes 10 20
• S is recoverable if each transaction commits only after all transactions from which it read have committed.
![Page 21: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/21.jpg)
CS 245 Notes 10 21
• S is recoverable if each transaction commits only after all transactions from which it read have committed.
• S avoids cascading rollback if each transaction may read only those values written by committed transactions.
![Page 22: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/22.jpg)
CS 245 Notes 10 22
• S is recoverable if each transaction commits only after all transactions from which it read have committed.
• S avoids cascading rollback if each transaction may read only those values written by committed transactions.
• S is strict if each transaction may read and write only items previously written by committed transactions.
![Page 23: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/23.jpg)
CS 245 Notes 10 23
• Relationship of RC, ACR, Strict
Avoids cascading rollback
RC
ACR
ST SERIAL
![Page 24: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/24.jpg)
CS 245 Notes 10 24
Examples
• Recoverable:– w1(A) w1(B) w2(A) r2(B) c1 c2
• Avoids Cascading Rollback:– w1(A) w1(B) w2(A) c1 r2(B) c2
• Strict:– w1(A) w1(B) c1 w2(A) r2(B) c2
Assumes w2(A) is donewithout reading
![Page 25: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/25.jpg)
CS 245 Notes 10 25
Where are serializable schedules?
Avoids cascading rollback
RC
ACR
ST SERIAL
![Page 26: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/26.jpg)
CS 245 Notes 10 26
Deadlocks
• Detection– Wait-for graph
• Prevention– Resource ordering– Timeout– Wait-die– Wound-wait
![Page 27: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/27.jpg)
CS 245 Notes 10 27
Deadlock Detection
• Build Wait-For graph• Use lock table structures• Build incrementally or periodically• When cycle found, rollback victim
T1
T3
T2
T6
T5
T4T7
![Page 28: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/28.jpg)
CS 245 Notes 10 28
Resource Ordering
• Order all elements A1, A2, …, An
• A transaction T can lock Ai after Aj only if i > j
![Page 29: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/29.jpg)
CS 245 Notes 10 29
Resource Ordering
• Order all elements A1, A2, …, An
• A transaction T can lock Ai after Aj only if i > j
Problem : Ordered lock requests not realistic in most cases
![Page 30: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/30.jpg)
CS 245 Notes 10 30
Timeout
• If transaction waits more than L sec., roll it back!
• Simple scheme• Hard to select L
![Page 31: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/31.jpg)
CS 245 Notes 10 31
Wait-die
• Transactions given a timestamp when they arrive …. ts(Ti)
• Ti can only wait for Tj if ts(Ti)< ts(Tj) ...else die
![Page 32: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/32.jpg)
CS 245 Notes 10 32
T1
(ts =10)
T2
(ts =20)
T3
(ts =25)
wait
wait
Example:
![Page 33: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/33.jpg)
CS 245 Notes 10 33
T1
(ts =10)
T2
(ts =20)
T3
(ts =25)
wait
wait
Example:
wait?
![Page 34: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/34.jpg)
CS 245 Notes 10 34
T1
(ts =10)
T2
(ts =20)
T3
(ts =25)
wait
wait
Example:
wait?
![Page 35: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/35.jpg)
CS 245 Notes 10 35
Starvation with Wait-Die
• When transaction dies, re-try laterwith what timestamp?– original timestamp– new timestamp (time of re-submit)
![Page 36: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/36.jpg)
CS 245 Notes 10 36
Starvation with Wait-Die
• Resubmit with original timestamp• Guarantees no starvation
– Transaction with oldest ts never dies– A transaction that dies will eventually
have oldest ts and will complete...
![Page 37: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/37.jpg)
CS 245 Notes 10 37
T1
(ts =22)
T2
(ts =20)
T3
(ts =25)
wait(A)
Second Example:
requests A: wait for T2 or T3?
Note: ts between20 and 25.
![Page 38: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/38.jpg)
CS 245 Notes 10 38
T1
(ts =22)
T2
(ts =20)
T3
(ts =25)
wait(A)
Second Example (continued):
wait(A)
One option: T1 waits just for T3, transaction holding lock.But when T2 gets lock, T1 will have to die!
![Page 39: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/39.jpg)
CS 245 Notes 10 39
T1
(ts =22)
T2
(ts =20)
T3
(ts =25)
wait(A)
Second Example (continued):
wait(A)
wait(A)
Another option: T1 only gets A lock after T2, T3 complete,
so T1 waits for both T2, T3 T1 dies right away!
![Page 40: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/40.jpg)
CS 245 Notes 10 40
T1
(ts =22)
T2
(ts =20)
T3
(ts =25)
wait(A)
Second Example (continued):
wait(A)
wait(A)
Yet another option: T1 preempts T2, so T1 only
waits for T3; T2 then waits for T3 and T1... T2 may starve?
redundant arc
![Page 41: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/41.jpg)
CS 245 Notes 10 41
Wound-wait
• Transactions given a timestamp when they arrive … ts(Ti)
• Ti wounds Tj if ts(Ti)< ts(Tj) else Ti waits
“Wound”: Tj rolls back and gives lock to Ti
![Page 42: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/42.jpg)
CS 245 Notes 10 42
T1
(ts =25)
T2
(ts =20)
T3
(ts =10)
wait
wait
Example:
![Page 43: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/43.jpg)
CS 245 Notes 10 43
T1
(ts =25)
T2
(ts =20)
T3
(ts =10)
wait
wait
Example:
wait
![Page 44: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/44.jpg)
CS 245 Notes 10 44
Starvation with Wound-Wait
• When transaction dies, re-try laterwith what timestamp?– original timestamp– new timestamp (time of re-submit)
![Page 45: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/45.jpg)
CS 245 Notes 10 45
T1
(ts =15)
T2
(ts =20)
T3
(ts =10)
wait(A)
Second Example:
requests A: wait for T2 or T3?
Note: ts between10 and 20.
![Page 46: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/46.jpg)
CS 245 Notes 10 46
T1
(ts =15)
T2
(ts =20)
T3
(ts =10)
wait(A)
Second Example (continued):
wait(A)
One option: T1 waits just for T3, transaction holding lock.But when T2 gets lock, T1 waits for T2 and wounds T2.
![Page 47: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/47.jpg)
CS 245 Notes 10 47
T1
(ts =15)
T2
(ts =20)
T3
(ts =10)
wait(A)
Second Example (continued):
wait(A)
wait(A)
Another option: T1 only gets A lock after T2, T3 complete,
so T1 waits for both T2, T3 T2 wounded right away!
![Page 48: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/48.jpg)
CS 245 Notes 10 48
T1
(ts =15)
T2
(ts =20)
T3
(ts =10)
wait(A)
Second Example (continued):
wait(A)
wait(A)
Yet another option: T1 preempts T2, so T1 only
waits for T3; T2 then waits for T3 and T1... T2 is spared!
![Page 49: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/49.jpg)
CS 245 Notes 10 49
User/Program commands
Lots of variations, but in general• Begin_work• Commit_work• Abort_work
![Page 50: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/50.jpg)
CS 245 Notes 10 50
Nested transactions
User program:
Begin_work;
If results_ok, then commit workelse abort_work
...
...
...
![Page 51: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/51.jpg)
CS 245 Notes 10 51
Nested transactions
User program:
Begin_work;Begin_work;
If results_ok, then commit work else {abort_work; try something else…}
If results_ok, then commit workelse abort_work
...
...
...
![Page 52: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/52.jpg)
CS 245 Notes 10 52
Parallel Nested TransactionsT1: begin-work
parallel:T11: begin_work
commit_work
T12: begin_work
commit_work
commit_work
......
......
![Page 53: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/53.jpg)
CS 245 Notes 10 53
Parallel Nested TransactionsT1: begin-work
parallel:T11: begin_work
commit_work
T12: begin_work
commit_work
commit_work
......
......
T1
T11 T12
![Page 54: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/54.jpg)
CS 245 Notes 10 54
Parallel Nested TransactionsT1: begin-work
parallel:T11: begin_work
commit_work
T12: begin_work
commit_work
commit_work
......
......
T1
T11 T12
T1
![Page 55: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/55.jpg)
CS 245 Notes 10 55
LockingLocking
What are we really locking?
![Page 56: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/56.jpg)
CS 245 Notes 10 56
Example:
Ti
Read record r1
Read record r1 do record
lockingModify record r3
...
...
...
...
![Page 57: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/57.jpg)
CS 245 Notes 10 57
But underneath:
Disk
pages
R3
R1
R2
record id
![Page 58: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/58.jpg)
CS 245 Notes 10 58
But underneath:
Disk
pages
R3
R1
R2
record id
If we lock all
data involved in read
of R1, we may prevent
an update to R2
(which may require
reorganization within
block)
![Page 59: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/59.jpg)
CS 245 Notes 10 59
Solution: view DB at two levels
Top level: record actions record locks undo/redo actions — logical
e.g., Insert record(X,Y,Z) Redo: insert(X,Y,Z) Undo: delete
![Page 60: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/60.jpg)
CS 245 Notes 10 60
Low level: deal with physical details latch page during action(release at end of action)
![Page 61: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/61.jpg)
CS 245 Notes 10 61
Note: undo does not return physical DB to original state; only same logical state
e.g., Insert R3 Undo (delete R3)
R1 R1R2
R1R2
R2R3
![Page 62: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/62.jpg)
CS 245 Notes 10 62
Logging Logical Actions
• Logical action typically span one block(physiological actions)
• Undo/redo log entry specifies undo/redo logical action
![Page 63: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/63.jpg)
Question
• How to deal with spanned record?
CS 245 Notes 10 63
part (a) part (b) part (c)
![Page 64: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/64.jpg)
CS 245 Notes 10 64
Logging Logical Actions
• Logical action typically span one block(physiological actions)
• Undo/redo log entry specifies undo/redo logical action
• Challenge: making actions idempotent•Example (bad): redo insert
key inserted multiple times!
![Page 65: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/65.jpg)
CS 245 Notes 10 65
Solution: Add Log Sequence Number
Log record:•LSN=26•OP=insert(5,v2) into P• ...
3, v1sem lsn=25 ...
3, v1sem lsn=26 ...
5, v2
![Page 66: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/66.jpg)
CS 245 Notes 10 66
Still Have a Problem!
3, v1lsn=24 ...
4, v23, v1
lsn=25 ...
3, v1lsn=26 ...
5, v3
T1Del 4
T2Ins 5
![Page 67: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/67.jpg)
CS 245 Notes 10 67
Still Have a Problem!
3, v1lsn=24 ...
4, v23, v1
lsn=25 ...
3, v1lsn=26 ...
5, v3
T1Del 4
T2Ins 5
3, v1lsn=?? ...
5, v34, v2
undoDel 4
![Page 68: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/68.jpg)
CS 245 Notes 10 68
Still Have a Problem!
3, v1lsn=24 ...
4, v23, v1
lsn=25 ...
3, v1lsn=26 ...
5, v3
T1Del 4
T2Ins 5
3, v1lsn=?? ...
5, v34, v2
undoDel 4
Make log entryfor undo
lsn=27
![Page 69: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/69.jpg)
CS 245 Notes 10 69
Compensation Log Records
• Log record to indicate undo (not redo) action performed
• Note: Compensation may not return page to exactly the initial state
![Page 70: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/70.jpg)
CS 245 Notes 10 70
At Recovery: Example
lsn=21T1a1p1
lsn=35T1a2-1
p2
lsn=27T1a2p2
... ... ......
Log:
![Page 71: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/71.jpg)
CS 245 Notes 10 71
What to do with p2 (during T1 rollback)?
• If lsn(p2)<27 then ... ?• If 27 lsn(p2) < 35 then ... ?• If lsn(p2) 35 then ... ?
Note: lsn(p2) is lsn of p copy on disk
![Page 72: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/72.jpg)
CS 245 Notes 10 72
Recovery Strategy
[1] Reconstruct state at time of crash– Find latest valid checkpoint, Ck, and
let ac be its set of active transactions– Scan log from Ck to end:
• For each log entry [lsn, page] do:if lsn(page) < lsn then redo action
• If log entry is start or commit, update ac
![Page 73: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/73.jpg)
CS 245 Notes 10 73
Recovery Strategy
[2] Abort uncommitted transactions– Set ac contains transactions to abort– Scan log from end to Ck :
• For each log entry (not undo) of an ac transaction,undo action (making log entry)
– For ac transactions not fully aborted,read their log entries older than Ck andundo their actions
![Page 74: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/74.jpg)
CS 245 Notes 10 74
Example: What To Do After Crash
lsn=21T1a1p1
lsn=35T1a2-1
p2
lsn=27T1a2p2
... ... ......
Log:
...
lsn=29T1a3p3
lsn=31T1a3-1
p3 ...
chkpt
![Page 75: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/75.jpg)
CS 245 Notes 10 75
During Undo: Skip Undo’s
lsn=21T1a1p1
lsn=35T1a2-1
p2
lsn=27T1a2p2
... ... ......
Log:
...
lsn=29T1a3p3
lsn=31T1a3-1
p3 ...
chkpt
pointer to forward action
pointer to previous T1 action
![Page 76: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/76.jpg)
CS 245 Notes 10 76
Related idea: Sagas• Long running activity: T1, T2, ... Tn
• Each step/trasnaction Ti has a compensating transaction Ti-1
• Semantic atomicity: execute one of– T1, T2, ... Tn
– T1, T2, ... Tn-1 T-1n-1, T-1
n-2, ... T-11
– T1, T2, ... Tn-2 T-1n-2, T-1
n-3, ... T-11
– T1, T-11
– nothing
...
![Page 77: CS 245: Database System Principles Notes 10: More TP](https://reader035.vdocument.in/reader035/viewer/2022062517/56813be7550346895da51561/html5/thumbnails/77.jpg)
CS 245 Notes 10 77
Summary
• Cascading rollbackRecoverable schedule
• Deadlock– Prevention– Detectoin
• Nested transactions• Multi-level view