Transcript PPTX
Algorithm 2
CSE
255
Algorithm 2 Problem
Apply Algorithm 2 to the Schedule of Transactions
on the next Slide
In this Case, Wlock Implies Reading
For this Problem:
Draw the Precedence Graph
Check to See if the Schedule is Serializable
If So, Determine ALL Serial Schedules
prob.1
Algorithm 2: Read/Write Lock Model
CSE
255
Input: Schedule S for Transactions T1, T2 , … Tk
Output: Is S Serializable? If so, Serial Schedule
Method: Create a Directed Precedence Graph G:
Suppose in S, Ti :Rlock A.
If Tj : Wlock A is the Next Transaction to Wlock A (if
it exists) then place an Arc from Ti to Tj.
Repeat for all Ti’s, all Rlocks before Wlock on A!
Suppose in S, Ti :Wlock A.
If Tj : Wlock A is the Next Transaction to Wlock A (if
it exists) then place an Arc from Ti to Tj.
If Also exists Tm :Rlock A after Ti :Wlock A but before
Tj : Wlock A, then Draw an Arc from Ti to Tm.
Review the Resulting Precedence Graph
If G has Cycles - Non-Serializable
If G is Acyclic - Topological Sort for Serial Schedule
prob.2
Apply Algorithm 2 to Following Schedule
CSE
255
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23)
(24)
T1
T2
Rlock A
T3
T4
Rlock A
Wlock C
Unlock C
Rlock C
Wlock B
Unlock B
Rlock B
Unlock A
Unlock A
Wlock A
Rlock C
Wlock D
Unlock B
Unlock C
Rlock B
Unlock A
Wlock A
Unlock B
Wlock B
Unlock B
Unlock D
Unlock C
Unlock A
prob.3
Apply Algorithm 2 to Following Schedule
CSE
255
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23)
(24)
T1
T2
Rlock A
T3
Rlock A
Wlock C
Unlock C
Rlock C
Wlock B
Unlock B
T4Each Rlock
For
For
:WlockA B
TT11 :Rlock
for
TLook
A
Since
Rlock
2 :Rlock
Next
T to
Between
Look Arc
for
Wlock
B
Add
Next TT toto T
from
1
2
Wlock A
Rlock B
Unlock A
Unlock A
Wlock A
Rlock C
Wlock D
Unlock B
Unlock C
Rlock B
For Rlock B
Next to to
Wlock?
For Rlock Cs
No Wlock C
Unlock A
Wlock A
Unlock B
Wlock B
Unlock B
Unlock D
T1 before T3, T2 before T3, T2 before T4
T2 before T4, T1 before T4, T1 before T2
Unlock C
Unlock A
prob.4
Algorithm 2 Solution
CSE
255
Precedence Graph Below
Equivalent Serial Schedule via Topological Sort is
T1, T2, T3, T4
Note there may be multiple Serial Schedules
A:RW
T1
T3
B:WW
B:WR
A:WW
A:RW
T2
T4
B:RW
prob.5
Algorithm 3 – Steps 1 to 4
CSE
255
Input: Schedule S for Transactions T1, T2 , … Tk
Output: Is S Serializable? If so, Serial Schedule
Method: Create a Directed Polygraph Graph P:
1. Augment S with Dummy To (Write Every Item)
an Dummy Tf (Read Every Item)
2. Create Initial Polygraph P by Adding Nodes for
To, Tf, and Each Ti Transaction , in S
3. Place an Arc from Ti to Tj Whenever Tj Reads A
in Augmented S (with Dummy States) that was
Last Written by Ti. Write to Read for Each Item
Repeat this Step for all Arcs.
Don’t Forget to Consider Dummy States!
4. Discover Useless Transactions - T is Useless if
there is no Path from T to Tf
This is the “Initialization” Phase of Algorithm 3
prob.6
Algorithm 3 – Steps 5 to 7
CSE
255
Method: Reassess the Initial Polygraph P:
5. For Each Remaining Arc Ti W to Tj R(meaning
that Tj Reads Item A Written by Ti )
Consider all T To and T Tf that also Writes A:
I. If Ti = To and Tj = Tf then Add No Arcs
II. If Ti = To and Tj Tf then Add Arc from Tj to T
III. If Ti To and Tj = Tf then Add Arc from T to Ti
IV. If Ti To and Tj Tf then Add Arc Pair from T to
Ti and Tj to T
6. Determine if P is Acyclic by “Choosing” One
Transaction Arc for Each Pair - Make Choices
Carefully
7. If Acyclic - Serializable - Perform Topological
Sort without To , Tf for Equivalent Serial Schedule.
Else - Not Serializable
prob.7
Algorithm 3 – Key Steps
CSE
255
Method: Reassess the Initial Polygraph P:
3. Place an Arc from Ti to Tj Whenever Tj Reads A in
Augmented S (with Dummy States) that was Last Written
by Ti. Write to Read for Each Item
Repeat this Step for all Arcs.
Don’t Forget to Consider Dummy States!
4. Discover Useless Transactions - T is Useless if there is no
Path from T to Tf
5. For Each Remaining Arc Ti W to Tj R(meaning that Tj
Reads Item A Written by Ti )
Consider all T To and T Tf that also Writes A:
I. If Ti = To and Tj = Tf then Add No Arcs
II. If Ti = To and Tj Tf then Add Arc from Tj to T
III. If Ti To and Tj = Tf then Add Arc from T to Ti
IV. If Ti To and Tj Tf then Add Arc Pair from T to Ti and Tj to T
6. Determine if P is Acyclic by “Choosing” One Transaction
Arc for Each Pair - Make Choices Carefully
prob.8
Apply Algorithm 3 to Following Schedule
CSE
255
T1
(T0) Write A
(1)
(2)
(3)
(4) Rlock A
(5)
(6)
(7)
(8)
(9) Wlock B
(10)
(11) Unlock A
(12)
(13) Unlock B
(14)
(15)
(16)
(TF) Read A
T2
Write B
T3
T4
Wlock A
Rlock B
Unlock A
Unlock B
Wlock B
Rlock A
Unlock B
Unlock A
Wlock A
Rlock B
Unlock A
Unlock B
Read B
prob.9
Apply Algorithm 3 to Following Schedule
CSE
255
T1
T2
T3
T4
Look for All Write/Read
(T0) Write A Write B
(1)
Wlock A
(2)
Rlock B
(3)
Unlock A
(4) Rlock A
(5)
Unlock B
(6)
Wlock B
(7)
Rlock A
(8)
Unlock B
(9) Wlock B
T3 before T1, T3 before T2, T4 before Tf
T0 before
T4, T1 before T2, T1 before Tf
(10)
Unlock
A
(11) Unlock A
(12)
Wlock A
(13) Unlock B
(14)
Rlock B
(15)
Unlock A
(16)
Unlock B
Remove Useless Arcs
(TF) Read A,
Read B
prob.10
Algorithm 3 Solution
Precedence Graph after Steps 1 to 4
B:WR
CSE
T0
255
T1
B:WR
T2
A:WR
T3
T4
A:WR
Tf
A:WR
Remove Useless
Trans.
B:WR
T0
Remove Arrows
From Sched
Before Step 5
T1
B:WR
T2
T3
T4
A:WR
Tf
A:WR
B:WR
prob.11
Apply Algorithm 3 to Following Schedule
CSE
255
T1
T2
(T0) Write A Write B
(1)
(2)
(3)
(4) Rlock A
(5)
(6)
(7)
Rlock A
(8)
(9) Wlock B
(10)
Unlock A
(11) Unlock A
(12)
(13) Unlock B
(14)
Rlock B
(15)
(16)
Unlock B
(TF) Read A,
Read B
T3
T4
Wlock A
Rlock B
Unlock A
Unlock B
Wlock B
Unlock B
Two Arrows
Removed
Wlock A
Unlock A
prob.12
Alg 3 Ex - Step 5 - Who Else Writes A?
CSE
255
T1
T2
(T0) Write A Write B
(1)
(2)
(3)
(4) Rlock A
(5)
(6)
(7)
Rlock A
(8)
(9) Wlock B
(10)
Unlock A
(11) Unlock A
(12)
(13) Unlock B
(14)
Rlock B
(15)
(16)
Unlock B
(TF) Read A,
Read B
T3
T4
Wlock A
Rlock B
Unlock A
For T3 to T1 Arc
WhoUnlock
ElseB Writes A?
Wlock B
Unlock B
Case IV: T4
Add T4 to T3 Arc &
Add T1 to T4 Arc &
Wlock A
For T4 to Tf Arc
WhoUnlock
Else AWrites A?
Case III: T3
Add T3 to T4 Arc
prob.13
Alg 3 Ex - Step 5 - Who Else Writes B?
CSE
255
T1
T2
(T0) Write A Write B
(1)
(2)
(3)
(4) Rlock A
(5)
(6)
(7)
Rlock A
(8)
(9) Wlock B
(10)
Unlock A
(11) Unlock A
(12)
(13) Unlock B
(14)
Rlock B
(15)
(16)
Unlock B
(TF) Read A
Read B
T3
T4
Wlock A
Rlock B
Unlock A
Wlock B
Unlock B
ForUnlock
T0 toB T4 Arc
Who Else Writes B?
Case II: T1 & T3
Add T4 to T3 Arc
Add T4 to T1 Arc
Wlock A
For T1 to Tf Arc
WhoUnlock
Else AWrites B?
Case III: T3
Add T3 to T1 Arc
prob.14
Algorithm 3 Solution
5. For Each Arc Ti to Tj Consider All T’s that Write X
CSE
255
I. If Ti = To and Tj = Tf then Add No Arcs
II. If Ti = To and Tj Tf then Add Arc from Tj to T
III. If Ti To and Tj = Tf then Add Arc from T to Ti
IV. If Ti To and Tj Tf then Add Pair from T to Ti and Tj to T
B:WR
IV A:RW
II B:RW
IV A:RW
T0
T1
T3 II B:RW T4
T2
A:WR
A:WR
Tf
III A:RW
III B:RW
B:WR
prob.15
Algorithm 3 Solution
Choose one Arrow from Dotted Pair
Say from T4 to T3 - Still have Cycle Can’t remove
Therefore, Not Serializable.
CSE
255
B:WR
IV A:RW
II B:RW
IV A:RW
T0
T1
T3 II B:RW T4
T2
A:WR
A:WR
Tf
III A:RW
III B:RW
B:WR
prob.16
Algorithm 4
CSE
255
Algorithm 4 Problem
Apply Algorithm 4 to the Schedule of Transactions
on the next Slide
Assume the Following Transaction Times
T1 = 175, T2 = 150, T3 = 200, T4 = 225
Determine the RT and WT for A, B, C, and D at each
Step
Indicate when a Transaction Aborts or has No Effect
Remember, RT=WT=0 for A, B, C, and D Prior to
the 1st Step in the Schedule
prob.17
Algorithm 4: Optimistic CC
CSE
255
Let T be a Transaction with Timestamp t Attempting
to Perform Operation X on a Data Item I with
Readtime tR and Writetime tW
If (X = Read and t tW ) Perform Oper
If t > tW then set tR = t for Data Item I (read after write)
If (X = Write and t tR and t tW ) Perform Oper
If t > tr then set tW = t for Data Item I (write after read)
If (X = Write and tR t < tW ) then Do Nothing
since Later Write will Cancel out the Write of T
If (X = Read and t < tW ) or
(X = Write and t < tR ) then Abort the Operation
1st - T trying to Read Item Before it was Written
2nd - T trying to Write an Item Before it was Read
prob.18
Algorithm 4 Problem
(1)
T1=175
T2=150
Read A
T3=200
T4=225
A
RT=150
Initially RT/WT of
A, B, C, and D
are all Zero (0)
B
C
D
T2 TS 150 ≥ A.WT = 0 – set A.RT = 150
(2) Read A
T1 TS 175 ≥ A.WT = 0 – set A.RT = 175RT=175
CSE (3) Write C
T TS 175≥ C.RT = 0 – set C.WT = 175
255 1 (4)
Read C
T3 TS 200 ≥ C.WT = 0 – set C.RT = 200
(5) Write B
T1 TS 175≥ B.RT = 0 – set B.WT = 175
WT=175
RT=200
WT=175
Read B
T4 (6)
TS 225 ≥ B.WT = 175 – set B.RT
= 225
RT=225
T3 (7)
TS 200 ≥ A.RT = 175 Write
– setA A.WT = 200
WT=200
Read
C
T4 (8)
TS 225 ≥ C.RT = 0 – set C.WT
= 225
WT=225
Write
T2 (9)
TS 150 ≥ D.RT
= D0 – set D.WT = 150
WT=150
T2 (10)
TS 150 IN NOT
Read≥ B B.WT = 225 – ABORT T2
T4 (11)
TS 225 ≥ A.RT = 175– set A.WT
= A225
Write
Abort T2
WT=225
T4 (12)
TS 225 ≥ B.RT = 225 – set B.WT
Write=B 225
WT=225
prob.19
Algorithm 4 Problem
(1)
T1=175
T2=150
Read A
T3=200
T4=225
(2) Read A
CSE
255
A
RT=150
WT=0
RT=175
WT=0
Initially RT/WT of
A, B, C, and D
are all Zero (0)
B
(3) Write C
(4)
(5) Write B
RT=0
WT=175
RT=225
WT=175
Read B
(7)
Write A
(8)
RT=175
WT=200
Read C
(9)
Write D
(10)
Read B
D
RT=0
WT=175
RT=200
WT=175
Read C
(6)
C
RT=225
WT=175
RT=0
WT=150
Abort T2
(11)
(12)
Write A RT=175
WT=225
Write B
RT=225
WT=225
prob.20
Query Optimization Problem
CSE
255
Consider the Three Relations:
Branch (BranchName, BranchCity, Assets)
Account(AccountNumber, BranchName, Balance)
Depositor(CustomerName, AccountNumber)
Optimize the following Relational Express by
Drawing the Initial Expression Tree
Optimizing (Rewriting) the Tree
The Query Finds all Customers who have Accounts at
the Storrs Branch with Balance > 1000
CustomerName(BranchName=‘Storrs’^ Balance > 1000 (Branch x Account x Depositor))
prob.21
Create the Initial Query Tree
CSE
255
CustomerName
BranchName = Storrs
^ Balance > 1000
X
Depositor
X
Branch
Account
prob.22
Initial Query Tree
CSE
255
CustomerName
BranchName = Storrs
^ Balance > 1000
X
Depositor
X
Branch
Account
prob.23
QO: Solution - Optimized Query Tree
CustomerName
AccountNumber
CSE
255
AccountNumber
Depositor
BranchName
BranchName
BranchCity=‘Storrs’
Branch
BranchName, AccountNumber
Balance > 1000
Account
prob.24