csc 261/461 –database systems lecture 21 and 22 · •documents enter a multi-stage pipelinethat...
TRANSCRIPT
![Page 1: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/1.jpg)
CSC 261/461 – Database SystemsLecture 21 and 22
Spring 2017MW 3:25 pm – 4:40 pm
January 18 – May 3Dewey 1101
![Page 2: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/2.jpg)
Announcements
• Project 3 (MongoDB): Due on: 04/12
• Work on Term Project and Project 1
• The last (mini) project would be out soon. – Spark
CSC261,Spring2017,UR
![Page 3: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/3.jpg)
Topics for Today
• MongoDB• Transactions
CSC261,Spring2017,UR
![Page 4: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/4.jpg)
MongoDB Aggregation
• 3 Ways– Aggregation Pipeline–Map-reduce function– Single Purpose aggregation Methods
CSC261,Spring2017,UR
![Page 5: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/5.jpg)
Aggregation Pipeline
• Documents enter a multi-stage pipeline that transforms the documents into an aggregated result.
• The most basic pipeline stages provide filters that operate like queries and document transformations that modify the form of the output document.
• Other pipeline operations provide tools for grouping and sorting documents by specific field or fields
CSC261,Spring2017,UR
![Page 6: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/6.jpg)
SQL vs MongoDB
SQLTerms,Functions,andConcepts MongoDBAggregationOperators
WHERE $match
GROUPBY $group
HAVING $match
SELECT $project
ORDERBY $sort
LIMIT $limit
SUM() $sum
COUNT() $count
Join(you canskip) $lookup
CSC261,Spring2017,UR
![Page 7: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/7.jpg)
MongoDB Aggregate
CSC261,Spring2017,UR
![Page 8: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/8.jpg)
MongoDB MapReduce
• MongoDB also provides map-reduce operations to perform aggregation.
• map-reduce operations have two phases: – map stage:• processes each document and emits one or more objects for each input
document
– reduce stage:• phase that combines the output of the map operation.
• Map-reduce can specify a query condition to select the input documents as well as sort and limit the results.
•
CSC261,Spring2017,UR
![Page 9: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/9.jpg)
MongoDB MapReduce
CSC261,Spring2017,UR
![Page 10: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/10.jpg)
TRANSACTIONS
CSC261,Spring2017,UR
![Page 11: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/11.jpg)
What we covered last time
• Transactions• Properties of Transactions: ACID• Logging:– Atomicity & Durability–Write-Ahead Logging (WAL) protocol
CSC261,Spring2017,UR
![Page 12: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/12.jpg)
Today’s Lecture
1. Concurrency,scheduling&anomalies
2. Locking:Strict2PL,conflictserializability,deadlockdetection
3. Recovery
12
![Page 13: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/13.jpg)
Concurrency & Locking
![Page 14: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/14.jpg)
1. CONCURRENCY, SCHEDULING & ANOMALIES
14
![Page 15: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/15.jpg)
What you will learn about in this section
1. Interleaving&scheduling
2. Conflict&anomalytypes
15
![Page 16: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/16.jpg)
Concurrency: Isolation & Consistency
• The DBMS must handle concurrency such that…
1. Isolation is maintained:• Users must be able to execute each TXN as if they were
the only user• DBMS handles the details of interleaving various TXNs
2. Consistency is maintained: • TXNs must leave the DB in a consistent state• DBMS handles the details of enforcing integrity constraints
CSC261,Spring2017,UR
ACID
ACID
![Page 17: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/17.jpg)
Example- consider two TXNs:
T1: START TRANSACTIONUPDATE AccountsSET Amt = Amt + 100WHERE Name = ‘A’
UPDATE AccountsSET Amt = Amt - 100WHERE Name = ‘B’
COMMIT
T2: START TRANSACTIONUPDATE AccountsSET Amt = Amt * 1.06
COMMIT
T1transfers$100fromB’saccounttoA’saccount
T2creditsbothaccountswitha6%interestpayment
![Page 18: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/18.jpg)
Example- consider two TXNs:
T1transfers$100fromB’saccounttoA’saccount
T2creditsbothaccountswitha6%interestpayment
T1
T2
A+=100 B-=100
A*=1.06 B*=1.06
Time
WecanlookattheTXNsinatimelineview- serialexecution:
![Page 19: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/19.jpg)
Example- consider two TXNs:
T1transfers$100fromB’saccounttoA’saccount
T2creditsbothaccountswitha6%interestpayment
T1
T2
A+=100 B-=100
A*=1.06 B*=1.06
Time
TheTXNscouldoccurineitherorder…DBMSallows!
![Page 20: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/20.jpg)
Example- consider two TXNs:
T1
T2
A+=100 B-=100
A*=1.06 B*=1.06
Time
TheDBMScanalsointerleave theTXNs
T2creditsA’saccountwith6%interestpayment,thenT1transfers$100toA’saccount…
T2creditsB’saccountwitha6%interestpayment,thenT1transfers$100fromB’saccount…
![Page 21: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/21.jpg)
Example- consider two TXNs:
Whatgoeswronghere??
T1
T2
A+=100 B-=100
A*=1.06 B*=1.06
Time
TheDBMScanalsointerleave theTXNs
![Page 22: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/22.jpg)
Three Types of Regions of Memory
1. Local: In our model each process in a DBMS has its own local memory, where it stores values that only it “sees”
2. Global: Each process can read from / write to shared data in main memory
3. Disk: Global memory can read from / flush to disk
4. Log: Assume on stable disk storage- spans both main memory and disk…
Local Global
MainMemory(RAM)
Disk
“Flushing todisk”=writingtodisk.
1 2
3Logisasequencefrommainmemory->disk
4
![Page 23: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/23.jpg)
Why Interleave TXNs?
• Interleaving TXNs might lead to anomalous outcomes… why do it?
• Several important reasons:– Individual TXNs might be slow-
• don’t want to block other users during!
– Disk access may be slow• let some TXNs use CPUs while others accessing disk!
23
Allconcernlargedifferencesinperformance
![Page 24: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/24.jpg)
Interleaving & Isolation
• The DBMS has freedom to interleave TXNs
• However, it must pick an interleaving or schedule such that isolation and consistency are maintained
–Must be as if the TXNs had executed serially!
24
DBMSmustpickaschedulewhichmaintainsisolation&consistency
“Withgreatpowercomesgreatresponsibility”
ACID
![Page 25: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/25.jpg)
Schedule
• A schedule is a list of actions– Reading (R)–Writing (W)– Aborting (A)– Committing (C)
• A schedule represents actual or potential execution sequence.
CSC261,Spring2017,UR
![Page 26: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/26.jpg)
Scheduling examples
26
T1
T2
A+=100 B-=100
A*=1.06 B*=1.06
T1
T2
A+=100 B-=100
A*=1.06 B*=1.06
A B
$50 $200
A B
$159 $106
A B
$159 $106
StartingBalance
Sameresult!
SerialscheduleT1,T2:
InterleavedscheduleA:
![Page 27: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/27.jpg)
Scheduling examples
27
T1
T2
A+=100 B-=100
A*=1.06 B*=1.06
T1
T2
A+=100 B-=100
A*=1.06 B*=1.06
A B
$50 $200
A B
$159 $106
A B
$159 $112
StartingBalance
DifferentresultthanserialT1,T2!
SerialscheduleT1,T2:
InterleavedscheduleB:
![Page 28: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/28.jpg)
Scheduling examples
28
T1
T2
A+=100 B-=100
A*=1.06 B*=1.06
T1
T2
A+=100 B-=100
A*=1.06 B*=1.06
A B
$50 $200
A B
$153 $112
A B
$159 $112
StartingBalance
DifferentresultthanserialT2,T1ALSO!
SerialscheduleT2,T1:
InterleavedscheduleB:
![Page 29: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/29.jpg)
Scheduling examples
29
T1
T2
A+=100 B-=100
A*=1.06 B*=1.06
Thisscheduleisdifferentthananyserialorder! Wesaythatitisnot
serializable
InterleavedscheduleB:
![Page 30: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/30.jpg)
Scheduling Definitions
• A serial schedule is one that does not interleave the actions of different transactions
• A and B are equivalent schedules if, for any database state, the effect on DB of executing A is identical to the effect of executing B
• A serializable schedule is a schedule that is equivalent to some serial execution of the transactions.
Theword“some”makesthisdefinitionpowerful&tricky!
![Page 31: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/31.jpg)
Order of Execution• Executing transactions in different order may produce
different results– But all are presumed to be acceptable.– DBMS makes no guarantees about which of them will be the
outcome of an interleaved execution.
CSC261,Spring2017,UR
T1
T2
A+=100 B-=100
A*=1.06 B*=1.06
SerialscheduleT1,T2:
T1
T2
A+=100 B-=100
A*=1.06 B*=1.06
SerialscheduleT2,T1:
A B
$50 $200
StartingBalance
A B
$153 $112
A B
$159 $106
![Page 32: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/32.jpg)
Serializable?
32
T1
T2
A+=100 B-=100
A*=1.06 B*=1.06
SameasaserialscheduleforallpossiblevaluesofA,B=serializable
Serialschedules:A B
T1,T2 1.06*(A+100) 1.06*(B-100)
T2,T1 1.06*A+100 1.06*B- 100
A B
1.06*(A+100) 1.06*(B-100)
![Page 33: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/33.jpg)
Serializable?
33
T1
T2
A+=100 B-=100
A*=1.06 B*=1.06
Notequivalent toanyserializableschedule =notserializable
Serialschedules:A B
T1,T2 1.06*(A+100) 1.06*(B-100)
T2,T1 1.06*A+100 1.06*B- 100
A B
1.06*(A+100) 1.06*B- 100
![Page 34: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/34.jpg)
What else can go wrong with interleaving?
• Various anomalies which break isolation / serializability
–Often referred to by name…
• Occur because of / with certain “conflicts” between interleaved TXNs
34
conflicts
![Page 35: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/35.jpg)
The DBMS’s view of the schedule
35
T1
T2
A+=100 B-=100
A*=1.06 B*=1.06
T1
T2
R(A)
R(A)
W(A)
W(A) R(B) W(B)
R(B) W(B)
EachactionintheTXNsreadsavaluefromglobalmemory andthenwritesonebacktoit
Schedulingordermatters!
![Page 36: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/36.jpg)
Conflict Types
• Thus, there are three types of conflicts:– Read-Write conflicts (RW)– Write-Read conflicts (WR) – Write-Write conflicts (WW)
Whyno“RRConflict”?
Twoactionsconflict iftheyarepartofdifferentTXNs,involvethesamevariable/object,andatleastoneofthemisawrite
Interleavinganomaliesoccurwith/becauseoftheseconflictsbetweenTXNs (buttheseconflictscanoccurwithoutcausing
anomalies!)
![Page 37: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/37.jpg)
Occurringwith/becauseofaRWconflict
Classic Anomalies with Interleaved Execution
“Unrepeatableread”:
T1
T2
R(A) R(A)
1. T1 reads somedatafromA
2. T2 writes toA
3. Then,T1 readsfromAagainandnowgetsadifferent/inconsistentvalue
R(A) W(A) C
Example:
Possibleissue:Errorduetointegrityconstraint
![Page 38: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/38.jpg)
Unrepeatable Read (RW Conflicts)
• A unrepeatable read manifests when consecutive reads yield different results due to a concurring transaction that has just updated the record we’re reading.
• This is undesirable since we end up using stale data.
• This is prevented by holding a shared lock (read lock) on the read record for the whole duration of the current transaction.
CSC261,Spring2017,UR
![Page 39: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/39.jpg)
Occurringwith/becauseofaWRconflict
“Dirtyread”/Readinguncommitteddata:
T1
T2
W(A) A
1. T1 writes somedatatoA
2. T2 reads fromA,thenwritesbacktoA&commits
3. T1 thenaborts- nowT2’sresultisbasedonanobsolete/inconsistentvalue
R(A) W(A) C
Example:
Classic Anomalies with Interleaved Execution
Problem:ThevalueofAwrittenbyT1isreadbyT2beforeT1hascompletedallitschanges.
![Page 40: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/40.jpg)
Dirty Read (Reading Uncommitted Data) (WR Conflicts)
• A dirty read happens when a transaction is allowed to read uncommitted changes of some other running transaction.
• This happens because there is no locking preventing it.
• In the picture, you can see that the second transaction uses an inconsistent value as the first transaction is aborted.
CSC261,Spring2017,UR
![Page 41: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/41.jpg)
Partially-lostupdate:
T1
T2
W(A)
1. T1 blindwrites somedatatoA
2. T2 blindwrites toAandB
3. T1 thenblindwrites toB;nowwehaveT2’svalueforBandT1’svalueforA- notequivalenttoanyserialschedule!
Example:
W(B) C
W(A) CW(B)
OccurringbecauseofaWWconflict
Classic Anomalies with Interleaved Execution
Problem:T1’supdate(W(A))islost.T2’supdate(W(B))islost
![Page 42: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/42.jpg)
Unrecoverable Schedule
CSC261,Spring2017,UR
T1
T2
R(A) A
W(A) C
1. T1 readsandwritesdatatoA
2. T2 readsandwritesdatatoA
3. 𝑇$commits
4. 𝑇(aborts.
W(A)
R(A)
Inarecoverableschedule,transactionscommitonlyafteralltransactionswhosechangestheyreadcommit.
![Page 43: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/43.jpg)
2. CONFLICT SERIALIZABILITY, LOCKING & DEADLOCK
43
![Page 44: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/44.jpg)
What you will learn about in this section
1. RECAP:Concurrency
2. ConflictSerializability
3. DAGs&TopologicalOrderings
4. Strict2PL
5. Deadlocks
44
![Page 45: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/45.jpg)
Recall: Concurrency as Interleaving TXNs
• For our purposes, having TXNs occur concurrently means interleaving their component actions (R/W)
45
Wecalltheparticularorderofinterleavingaschedule
T1T2
R(A) R(B)W(A) W(B)
SerialSchedule:
R(A) R(B)W(A) W(B)
T1T2
R(A) R(B)W(A) W(B)
InterleavedSchedule:
R(A) R(B)W(A) W(B)
![Page 46: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/46.jpg)
Recall: “Good” vs. “bad” schedules
46
Wewanttodevelopwaysofdiscerning“good”vs.“bad”schedules
SerialSchedule:
T1
T2
R(A) R(B)W(A) W(B)
R(A) R(B)W(A) W(B)
T1
T2
R(A) R(B)W(A) W(B)
R(A) R(B)W(A) W(B)
T1
T2
R(A)
R(B)
W(A)
W(B)
R(A)
R(B)
W(A)
W(B)
X
InterleavedSchedules:
Why?
![Page 47: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/47.jpg)
Ways of Defining “Good” vs. “Bad” Schedules
• Recall from last time: we call a schedule serializable if it is equivalent to some serial schedule
– We used this as a notion of a “good” interleaved schedule, since a serializable schedule will maintain isolation & consistency
• Now, we’ll define a stricter, but very useful variant:
–Conflict serializability We’llneedtodefineconflicts first..
![Page 48: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/48.jpg)
Conflicts
Twoactionsconflict iftheyarepartofdifferentTXNs,involvethesamevariable,andatleastoneofthemisawrite
T1
T2
R(A) R(B)W(A) W(B)
R(A) R(B)W(A) W(B)W-RConflict
W-WConflict
![Page 49: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/49.jpg)
Conflicts
Twoactionsconflict iftheyarepartofdifferentTXNs,involvethesamevariable,andatleastoneofthemisawrite
T1
T2
R(A) R(B)W(A) W(B)
R(A) R(B)W(A) W(B)
All“conflicts”!
![Page 50: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/50.jpg)
Conflict Serializability
• Two schedules are conflict equivalent if:
– They involve the same actions of the same TXNs
– Every pair of conflicting actions of two TXNs are ordered in the same way
• Schedule S is conflict serializable if S is conflict equivalent to some serial schedule
Conflictserializable⇒ serializableSoifwehaveconflictserializable,wehaveconsistency&isolation!
![Page 51: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/51.jpg)
Conflict serializable
CSC261,Spring2017,UR
T1
T2
R(A) R(B)W(A) W(B)
R(A) R(B)W(A) W(B)
T1
T2
R(A) R(B)W(A) W(B)
R(A) R(B)W(A) W(B)
![Page 52: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/52.jpg)
Not Conflict serializable
CSC261,Spring2017,UR
T1
T2
R(A) R(B)W(A) W(B)
R(A) R(B)W(A) W(B)
T1
T2
R(A) R(B)W(A) W(B)
R(A) R(B)W(A) W(B)
![Page 53: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/53.jpg)
Example of Serializable Schedule that is not Conflict Serializable
CSC261,Spring2017,UR
T1
T2
R(A) W(A)
W(A)
T3 W(A)
T1
T2
R(A) W(A)
W(A)
T3 W(A)
Serializable
ButNotConflictSerializable
![Page 54: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/54.jpg)
Recall: “Good” vs. “bad” schedules
54
Conflictserializabilityalsoprovidesuswithanoperativenotionof“good”vs.“bad”schedules!
SerialSchedule:
T1
T2
R(A) R(B)W(A) W(B)
R(A) R(B)W(A) W(B)
T1
T2
R(A) R(B)W(A) W(B)
R(A) R(B)W(A) W(B)
T1
T2
R(A) R(B)W(A) W(B)
R(A) R(B)W(A) W(B)
X
InterleavedSchedules:
Notethatinthe“bad”schedule,theorderofconflictingactionsisdifferentthantheabove(orany)serialschedule!
![Page 55: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/55.jpg)
Note: Conflicts vs. Anomalies
• Conflicts are things we talk about to help us characterize different schedules– Present in both “good” and “bad” schedules
• Anomalies are instances where isolation and/or consistency is broken because of a “bad” schedule–We often characterize different anomaly types by what types of
conflicts predicated them
![Page 56: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/56.jpg)
The Conflict / Precedence / Serializability Graph
• Let’s now consider looking at conflicts at the TXN level
• Consider a graph where the nodes are TXNs, and there is an edge from Ti àTj if any actions in Ti precede and conflict with any actions in Tj
T1 T2
T1
T2
R(A) R(B)W(A) W(B)
R(A) R(B)W(A) W(B)
![Page 57: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/57.jpg)
57
SerialSchedule:
T1
T2
R(A) R(B)W(A) W(B)
R(A) R(B)W(A) W(B)
T1
T2
R(A) R(B)W(A) W(B)
R(A) R(B)W(A) W(B)
T1
T2
R(A) R(B)W(A) W(B)
R(A) R(B)W(A) W(B)
X
InterleavedSchedules:
What can we say about “good” vs. “bad” conflict graphs?
Abitcomplicated…
![Page 58: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/58.jpg)
58
SerialSchedule:
X
InterleavedSchedules:
T1 T2 T1 T2
T1 T2
Theorem:Scheduleisconflictserializable ifandonlyifitsconflictgraphisacyclic
Simple!
What can we say about “good” vs. “bad” conflict graphs?
![Page 59: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/59.jpg)
Let’s unpack this notion of acyclic conflict graphs…
![Page 60: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/60.jpg)
DAGs & Topological Orderings
• A topological ordering of a directed graph is a linear ordering of its vertices that respects all the directed edges
• A directed acyclic graph (DAG) always has one or more topological orderings– (And there exists a topological ordering if and only if there are no
directed cycles)
![Page 61: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/61.jpg)
DAGs & Topological Orderings
• Ex: What is one possible topological ordering here?
1
32
0
Ex:0,1,2,3(or:0,1,3,2)
![Page 62: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/62.jpg)
DAGs & Topological Orderings
• Ex: What is one possible topological ordering here?
1
32
0
Thereisnone!
![Page 63: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/63.jpg)
Connection to conflict serializability
• In the conflict graph, a topological ordering of nodes corresponds to a serial ordering of TXNs
• Thus an acyclic conflict graph à conflict serializable!
Theorem:Scheduleisconflictserializable ifandonlyifitsconflictgraphisacyclic
![Page 64: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/64.jpg)
How to deal with concurrency
Locking
CSC261,Spring2017,UR
![Page 65: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/65.jpg)
Strict Two-Phase Locking
• We consider locking- specifically, strict two-phase locking- as a way to deal with concurrency, because is guarantees conflict serializability (if it completes- see upcoming…)
• Also (conceptually) straightforward to implement, and transparent to the user!
![Page 66: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/66.jpg)
Strict Two-phase Locking (Strict 2PL) Protocol:
• Rule 1:– If a transaction T wants to:• Read an object, it obtains a shared (S) lock on the object• Write an object, it obtains an exclusive (X) lock on the object
• Rule 2:– All locks held by a transaction are released when transaction is
completed.
CSC261,Spring2017,UR
IfaTXNholdsalockX ,nootherTXNcangeta lock(S orX)onthatobject.
IfaTXNholdsalockS ,nootherTXNcangeta lockX onthatobject.
![Page 67: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/67.jpg)
Strict 2PL
Theorem: Strict2PLallowsonlyscheduleswhosedependencygraphisacyclic
Therefore,Strict2PLonlyallowsconflictserializable⇒ serializableschedules
ProofIntuition:Instrict2PL,ifthereisanedgeTi à Tj (i.e.Ti andTjconflict)thenTj needstowaituntilTi isfinished– socannothaveanedgeTj à Ti
![Page 68: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/68.jpg)
Strict 2PL
• If a schedule follows strict 2PL and locking, it is conflict serializable…
–…and thus serializable–…and thus maintains isolation & consistency!
• Not all serializable schedules are allowed by strict 2PL.
• So let’s use strict 2PL, what could go wrong?
![Page 69: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/69.jpg)
DEADLOCK
CSC261,Spring2017,UR
![Page 70: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/70.jpg)
Deadlock Detection: Example
First,T1 requestsasharedlockonAtoreadfromit
T1T2
S(A) R(A)
Waits-forgraph:
T1 T2
![Page 71: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/71.jpg)
Deadlock Detection: Example
Next,T2 requestsasharedlockonBtoreadfromit
T1T2 S(B) R(B)
S(A) R(A)
Waits-forgraph:
T1 T2
![Page 72: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/72.jpg)
Deadlock Detection: Example
T2 thenrequestsanexclusivelockonAtowritetoit- nowT2iswaitingonT1…
T1T2 X(A)S(B) R(B)
S(A) R(A)
Waits-forgraph:
T1 T2W(A)Waiting
…
![Page 73: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/73.jpg)
Deadlock Detection: Example
Finally,T1 requestsanexclusivelockonBtowritetoit- nowT1 iswaitingonT2…DEADLOCK!
T1T2
X(B)
X(A)S(B) R(B)
S(A) R(A)
Waits-forgraph:
T1 T2W(A)
W(B)
Cycle=DEADLOCK
Waiting…
Waiting…
![Page 74: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/74.jpg)
Performance of Locking
• Resolve conflicts between transactions and use two bascimechanisms:– Blocking – Aborting
• Both incurs performance penalty. – Blocking (Other transactions need to wait)– Aborting (Wastes the work done thus far)
• Deadlock:– Extreme instance of blocking– A set of transactions are forever blocked unless one of the
deadlocked transactions is aborted by the DBMS
CSC261,Spring2017,UR
![Page 75: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/75.jpg)
Deadlocks
• Deadlock: Cycle of transactions waiting for locks to be released by each other.
• Two ways of dealing with deadlocks:
1. Deadlock prevention
2. Deadlock avoidance
![Page 76: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/76.jpg)
Deadlock Prevention
• Use timestamp ordering mechanism of transactions in order to predetermine a deadlock situation.
• Wait-Die Scheme• Wound-Wait Scheme
CSC261,Spring2017,UR
![Page 77: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/77.jpg)
Timestamp Ordering
• Each transaction is assigned a uniqueincreasing timestamp
• Earlier transactions receives a smaller timestamp
• T1 (old) , T2, T3 (new), ...
• Notation: Old Transaction 𝑇*+, New Transaction 𝑇-./
CSC261,Spring2017,UR
𝑇*+,
𝑇-./
![Page 78: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/78.jpg)
Wait-Die
𝑇*+, is allowed towait for𝑇-./𝑇-./ will die whenit waits for𝑇*+,
CSC261,Spring2017,UR
X Wait
DieX
RequestsLock
RequestsLockHoldsLock
HoldsLock
X
![Page 79: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/79.jpg)
Wound Wait
𝑇*+, willwound𝑇-./𝑇-./waitsfor𝑇*+,
CSC261,Spring2017,UR
X
Wait
Wound
X
RequestsLock
RequestsLockHoldsLock
HoldsLock
X
![Page 80: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/80.jpg)
Deadlock Avoidance
• Waits-for graph:– For each transaction entering into
the system, a node is created.– When a transaction Ti requests for
a lock on an item, say X, which is held by some other transaction Tj, a directed edge is created from Ti to Tj.
– If Tj releases item X, the edge between them is dropped and Ti locks the data item.
• The system maintains this wait-for graph for every transaction waiting for some data items held by others. The system keeps checking if there's any cycle in the graph.
CSC261,Spring2017,UR
![Page 81: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/81.jpg)
• Here, we can use any of the two following approaches −• First, do not allow any request for an item, which is already
locked by another transaction. – This is not always feasible and may cause starvation, where a
transaction indefinitely waits for a data item and can never acquire it.
• The second option is to rollback one of the transactions. – It is not always feasible to roll back the younger transaction, as it
may be important than the older one. –With the help of some relative algorithm, a transaction is chosen,
which is to be aborted. – This transaction is known as the victim and the process is known
as victim selection.
CSC261,Spring2017,UR
![Page 82: CSC 261/461 –Database Systems Lecture 21 and 22 · •Documents enter a multi-stage pipelinethat transforms the ... Strict 2PL, conflict serializability, deadlock detection 3.Recovery](https://reader034.vdocuments.mx/reader034/viewer/2022042116/5e93e518d403ac6cba7c02b0/html5/thumbnails/82.jpg)
Acknowledgement
• Some of the slides in this presentation are taken from the slides provided by the authors.
• Many of these slides are taken from cs145 course offered byStanford University.
• https://vladmihalcea.com/2014/01/05/a-beginners-guide-to-acid-and-database-transactions/
CSC261,Spring2017,UR