Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor...
-
Upload
stacy-foulds -
Category
Documents
-
view
220 -
download
0
Transcript of Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor...
cs4432 concurrency control 1
CS4432: Database Systems IILecture #23
Concurrency Control
Professor Elke A. Rundensteiner
cs4432 concurrency control 2
Chapter 9 Concurrency Control
T1 T2 … Tn
DB(consistencyconstraints)
cs4432 concurrency control 3
ConceptsTransaction: sequence of ri(x), wi(x) actionsConflicting actions: read/write on same resource A.Schedule: represents chronological order in which
actions are executedSerial schedule: no interleaving of trans/actions S1, S2 are conflict equivalent schedules if S1
transform into S2 by swaps on non-conflicting actions.
A schedule is conflict serializable if it is conflict equivalent to some serial schedule.
cs4432 concurrency control 4
For a given schedule: Sd=r1(A)w1(A)r2(A)w2(A)
r2(B)w2(B)r1(B)w1(B)
T1 T2 T2 T1
T1 T2
If graph has cycles,
Then schedule is not conflict serializable.
Record dependencies in Precedence Graph:
cs4432 concurrency control 5
Theorem
P(S1) acyclic S1 conflict serializable
cs4432 concurrency control 6
How to enforce serializable schedules?
cs4432 concurrency control 7
How to enforce serializable schedules?
Option 1: try all possible swaps of non-conflicting operation pairs to determine if the schedule can be turned into a serial one, I.e., if the schedule is ‘good’.
cs4432 concurrency control 8
How to enforce serializable schedules?
Option 2: run system, recording P(S);
at end of day, check for P(S) cycles and declare if
execution was good
cs4432 concurrency control 9
Option 3: prevent P(S) cycles from occurring T1 T2 ….. Tn
Scheduler
DB
How to enforce serializable schedules?
cs4432 concurrency control 10
A locking protocol
Two new actions:lock (exclusive): li (A)
unlock: ui (A)
scheduler
T1 T2
locktable
cs4432 concurrency control 11
Rule #1: Well-formed transactions
Ti: … li(A) … pi(A) … ui(A) ...
cs4432 concurrency control 12
Rule #2 Legal scheduler
S = …….. li(A) ………... ui(A) ……...
no lj(A)
cs4432 concurrency control 13
• What schedules are legal?What transactions are well-formed?S1 = l1(A)l1(B)r1(A)w1(B)l2(B)u1(A)u1(B)r2(B)w2(B)u2(B)l3(B)r3(B)u3(B)
S2 = l1(A)r1(A)w1(B)u1(A)u1(B)l2(B)r2(B)w2(B)l3(B)r3(B)u3(B)
S3 = l1(A)r1(A)u1(A)l1(B)w1(B)u1(B)l2(B)r2(B)w2(B)u2(B)l3(B)r3(B)u3(B)
Exercise:
cs4432 concurrency control 14
• What schedules are legal?What transactions are well-formed?S1 = l1(A)l1(B)r1(A)w1(B)l2(B)u1(A)u1(B)r2(B)w2(B)u2(B)l3(B)r3(B)u3(B)
S2 = l1(A)r1(A)w1(B)u1(A)u1(B)l2(B)r2(B)w2(B)l3(B)r3(B)u3(B)
S3 = l1(A)r1(A)u1(A)l1(B)w1(B)u1(B)l2(B)r2(B)w2(B)u2(B)l3(B)r3(B)u3(B)
Exercise:
cs4432 concurrency control 15
Schedule F : Adding locking ???
T1 T2l1(A);Read(A)A A+100;Write(A);u1(A)
l2(A);Read(A)A Ax2;Write(A);u2(A)l2(B);Read(B)B Bx2;Write(B);u2(B)
l1(B);Read(B)B B+100;Write(B);u1(B)
cs4432 concurrency control 16
Schedule F
T1 T2 25 25l1(A);Read(A)A A+100;Write(A);u1(A) 125
l2(A);Read(A)A Ax2;Write(A);u2(A) 250l2(B);Read(B)B Bx2;Write(B);u2(B) 50
l1(B);Read(B)B B+100;Write(B);u1(B) 150
250 150
A B
cs4432 concurrency control 17
Rule #3 Two phase locking (2PL)
for transactions
Ti = ……. li(A) ………... ui(A) ……...
no unlocks no locks
cs4432 concurrency control 18
# locksheld byTi
Time Growing Shrinking Phase Phase
cs4432 concurrency control 19
Schedule F : Does it follow 2PL ?
T1 T2l1(A);Read(A)A A+100;Write(A);u1(A)
l2(A);Read(A)A Ax2;Write(A);u2(A)l2(B);Read(B)B Bx2;Write(B);u2(B)
l1(B);Read(B)B B+100;Write(B);u1(B)
cs4432 concurrency control 20
Schedule G
T1 T2l1(A);Read(A)A A+100;Write(A)l1(B); u1(A)
l2(A);Read(A) A Ax2;Write(A);
cs4432 concurrency control 21
Schedule G
T1 T2l1(A);Read(A)A A+100;Write(A)l1(B); u1(A)
l2(A);Read(A) A Ax2;Write(A);ll22(B)(B)
delayed
cs4432 concurrency control 22
Schedule G
T1 T2l1(A);Read(A)A A+100;Write(A)l1(B); u1(A)
l2(A);Read(A) A Ax2;Write(A);ll22(B)(B)
Read(B);B B+100Write(B); u1(B)
delayed
cs4432 concurrency control 23
Schedule G
T1 T2l1(A);Read(A)A A+100;Write(A)l1(B); u1(A)
l2(A);Read(A) A Ax2;Write(A);ll22(B)(B)
Read(B);B B+100Write(B); u1(B)
l2(B); u2(A);Read(B) B Bx2;Write(B);u2(B);
delayed
cs4432 concurrency control 24
We Got the GOOD Schedule !!!!
T1 T2Read(A); A A+100Write(A);
Read(A);A A2;Write(A);
Read(B); B B+100;Write(B);
Read(B);B B2;Write(B);
A B25 25
125
250
125
250250 250
cs4432 concurrency control 25
Schedule H (T2 reversed)
T1 T2l1(A); Read(A) l2(B);Read(B)A A+100;Write(A) B Bx2;Write(B)… …
cs4432 concurrency control 26
Schedule H (T2 reversed)
T1 T2l1(A); Read(A) l2(B);Read(B)A A+100;Write(A) B Bx2;Write(B)
ll11(B)(B) l l22(A)(A)delayeddelayed
cs4432 concurrency control 27
• Assume deadlocked transactions are rolled back– They have no effect– They do not appear in schedule
E.g., Schedule H =This space intentionally
left blank!
cs4432 concurrency control 28
We need to show 2PL Protocol “works”:
Show that rules #1,2,3 conflict- serializable schedules
cs4432 concurrency control 29
Conflict rules for li(A), ui(A):
• li(A), lj(A) conflict • li(A), uj(A) conflict
cs4432 concurrency control 30
Theorem Rules #1,2,3 conflict (2PL) serializable
schedule
To help in proof:Definition Shrink(Ti) = SH(Ti) =
first unlock action of Ti
cs4432 concurrency control 31
LemmaTi Tj in S SH(Ti) <S SH(Tj)
Proof of lemma:Ti Tj means that
S = … pi(A) … qj(A) …; p,q conflictBy rules 1,2:
S = … pi(A) … ui(A) … lj(A) ... qj(A) …
By rule 3: SH(Ti) SH(Tj)
So, SH(Ti) <S SH(Tj)
cs4432 concurrency control 32
Proof:(1) Assume P(S) has cycle
T1 T2 …. Tn T1
(2) By lemma: SH(T1) < SH(T2) < ... <
SH(T1)
(3) Impossible, so P(S) acyclic(4) S is conflict serializable
Theorem Rules #1,2,3 conflict (2PL) serializable
schedule
cs4432 concurrency control 33
• Beyond this simple 2PL protocol, it is all a matter of improving
performance and allowing more concurrency….
– Shared locks– Multiple granularity– Other types of C.C. mechanisms