+ All Categories
Home > Documents > Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor...

Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor...

Date post: 14-Dec-2015
Category:
Upload: stacy-foulds
View: 220 times
Download: 0 times
Share this document with a friend
Popular Tags:
33
cs4432 concurrency control 1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner
Transcript
Page 1: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

cs4432 concurrency control 1

CS4432: Database Systems IILecture #23

Concurrency Control

Professor Elke A. Rundensteiner

Page 2: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

cs4432 concurrency control 2

Chapter 9 Concurrency Control

T1 T2 … Tn

DB(consistencyconstraints)

Page 3: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

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.

Page 4: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

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:

Page 5: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

cs4432 concurrency control 5

Theorem

P(S1) acyclic S1 conflict serializable

Page 6: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

cs4432 concurrency control 6

How to enforce serializable schedules?

Page 7: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

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’.

Page 8: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

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

Page 9: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

cs4432 concurrency control 9

Option 3: prevent P(S) cycles from occurring T1 T2 ….. Tn

Scheduler

DB

How to enforce serializable schedules?

Page 10: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

cs4432 concurrency control 10

A locking protocol

Two new actions:lock (exclusive): li (A)

unlock: ui (A)

scheduler

T1 T2

locktable

Page 11: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

cs4432 concurrency control 11

Rule #1: Well-formed transactions

Ti: … li(A) … pi(A) … ui(A) ...

Page 12: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

cs4432 concurrency control 12

Rule #2 Legal scheduler

S = …….. li(A) ………... ui(A) ……...

no lj(A)

Page 13: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

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:

Page 14: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

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:

Page 15: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

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)

Page 16: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

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

Page 17: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

cs4432 concurrency control 17

Rule #3 Two phase locking (2PL)

for transactions

Ti = ……. li(A) ………... ui(A) ……...

no unlocks no locks

Page 18: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

cs4432 concurrency control 18

# locksheld byTi

Time Growing Shrinking Phase Phase

Page 19: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

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)

Page 20: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

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);

Page 21: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

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

Page 22: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

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

Page 23: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

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

Page 24: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

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

Page 25: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

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)… …

Page 26: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

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

Page 27: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

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!

Page 28: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

cs4432 concurrency control 28

We need to show 2PL Protocol “works”:

Show that rules #1,2,3 conflict- serializable schedules

Page 29: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

cs4432 concurrency control 29

Conflict rules for li(A), ui(A):

• li(A), lj(A) conflict • li(A), uj(A) conflict

Page 30: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

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

Page 31: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

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)

Page 32: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

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

Page 33: Cs4432concurrency control1 CS4432: Database Systems II Lecture #23 Concurrency Control Professor Elke A. Rundensteiner.

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


Recommended