Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

55
cs4432 concurrency control 1 CS4432: Database Systems II Concurrency Control
  • date post

    22-Dec-2015
  • Category

    Documents

  • view

    244
  • download

    0

Transcript of Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

Page 1: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 1

CS4432: Database Systems II

Concurrency Control

Page 2: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 2

Chapter 18 Concurrency Control

T1 T2 … Tn

DB(consistencyconstraints)

Page 3: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 3

Example:

T1: Read(A) T2: Read(A)A A+100 A A2Write(A) Write(A)Read(B) Read(B)B B+100 B B2Write(B) Write(B)

Constraint: A=B

Page 4: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 4

A schedule

An ordering of operations inside one or more transactions over

time

Why interleave operations?

Page 5: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 5

Schedule A

T1 T2Read(A); A A+100Write(A);Read(B); B B+100;Write(B);

Read(A);A A2;

Write(A);

Read(B);B B2;

Write(B);

A B25 25

125

125

250

250250 250

Page 6: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 6

Schedule B

T1 T2

Read(A);A A2;

Write(A);

Read(B);B B2;

Write(B);Read(A); A A+100Write(A);Read(B); B B+100;Write(B);

A B25 25

50

50

150

150150 150

Page 7: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 7

Serial Schedules !

• Any serial schedule is “good”.

Page 8: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 8

Interleave Transactions

ina Schedule?

Page 9: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 9

Schedule C

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 10: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 10

Schedule D

T1 T2Read(A); A A+100Write(A);

Read(A);A A2;

Write(A);

Read(B);B B2;

Write(B);Read(B); B B+100;Write(B);

A B25 25

125

250

50

150250 150

Page 11: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 11

Schedule E

T1 T2’Read(A); A A+100Write(A);

Read(A);A A1;

Write(A);

Read(B);B B1;

Write(B);Read(B); B B+100;Write(B);

A B25 25

125

125

25

125125 125

Same as Schedule Dbut with new T2’

Page 12: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 12

What is a ‘good’ schedule?

Page 13: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 13

• We want schedules that are “good” regardless of :

• initial state and• transaction semantics

• Hence we consider only :– order of read/writes

Example: Sc=r1(A)w1(A)r2(A)w2(A)r1(B)w1(B)r2(B)w2(B)

Page 14: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 14

Remember Schedule C

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

Page 15: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 15

Sc’=r1(A)w1(A) r1(B)w1(B)r2(A)w2(A)r2(B)w2(B)

T1 T2

Example: Sc=r1(A)w1(A)r2(A)w2(A)r1(B)w1(B)r2(B)w

2(B)

Page 16: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 16

Now Let’s Try that for Schedule D !!!

T1 T2Read(A); A A+100Write(A);

Read(A);A A2;Write(A);

Read(B);B B2;Write(B);

Read(B); B B+100;Write(B);

Page 17: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 17

Now for Sd:Sd=r1(A)w1(A)r2(A)w2(A)

r2(B)w2(B)r1(B)w1(B)

Sd=r1(A)w1(A) r1(B)w1(B)r2(A)w2(A)r2(B)w2(B)

Page 18: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 18

Or, let’s try for Sd:Sd=r1(A)w1(A)r2(A)w2(A)

r2(B)w2(B)r1(B)w1(B)

Sd=r2(A)w2(A)r2(B)w2(B) r1(A)w1(A)r1(B)w1(B)

Page 19: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 19

In short, Schedule D cannot be “fixed” :Sd=r1(A)w1(A)r2(A)w2(A)

r2(B)w2(B)r1(B)w1(B)

• as a matter of fact, there seems to

be no safe way to transform this Sd

into an equivalent serial schedule !?

Page 20: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 20

Sd cannot be rearrangedinto a serial

scheduleSd is not “equivalent” to

any serial scheduleSd is “bad”

We note about schedule D:• T2 T1

• T1 T2T1 T2

Page 21: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 21

Returning to Sc

Sc=r1(A)w1(A)r2(A)w2(A)r1(B)w1(B)r2(B)w2(B)

T1 T2 T1 T2

no cycles Sc is “equivalent” to aserial schedule,I.e., in this case

(T1,T2).

Page 22: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 22

Concepts

Transaction: sequence of ri(x), wi(x) actionsConflicting actions: read/write on same resource A:

r1(A) w2(A) w1(A)

w2(A) r1(A) w2(A)

Schedule: represents chronological order in which actions are executed

Serial schedule: no interleaving of trans/actions

Page 23: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

Anomalies with Interleaving Reading Uncommitted Data (WR Conflicts, “dirty reads”):

e.g. T1: A+100, B+100, T2: A*1.06, B*1.06

T1: R(A), W(A), R(B), W(B), AbortT2: R(A), W(A), C

T1: R(A), R(A), W(A), CT2: R(A), W(A), C

Unrepeatable Reads (RW Conflicts): E.g., T1: R(A), check if A >0, decrement, T2: R(A), decrement

Overwriting Uncommitted Data (WW Conflicts):

T1: W(A), W(B), CT2: W(A), W(B), C

Page 24: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 24

Definition

S1, S2 are conflict equivalent schedulesif S1 can be transformed into S2 by a series of swaps on non-conflicting actions.

Page 25: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 25

Definition

A schedule is conflict serializable if it is conflict equivalent to some serial schedule.

Page 26: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 26

Answer: A Precedence Graph !

How determine this ?

Page 27: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 27

Nodes: transactions in SArcs: Ti Tj whenever

- pi(A), qj(A) are actions in S- pi(A) <S qj(A)

- at least one of pi, qj is a write

Precedence graph P(S) (S is

schedule)

Page 28: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 28

Exercise:

• What is P(S) forS = w3(A) w2(C) r1(A) w1(B) r1(C) w2(A) r4(A) w4(D)

• Is S conflict-serializable?

Page 29: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 29

Another Exercise:

• What is P(S) forS = w1(A) r2(A) r3(A) w4(A) ?

• Is S conflict-serializable?

Page 30: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 30

Lemma

S1, S2 conflict equivalent P(S1)=P(S2)

Proof:Assume P(S1) P(S2) Ti: Ti Tj in S1 and not in S2

S1 = …pi(A)... qj(A)… pi, qj

S2 = …qj(A)…pi(A)... conflict

S1, S2 not conflict equivalent

Page 31: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 31

Note: P(S1)=P(S2) S1, S2 conflict equivalent

Counter example:

S1=w1(A) r2(A) w2(B) r1(B) S2=r2(A) w1(A) r1(B) w2(B)

Page 32: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 32

Theorem

P(S1) acyclic S1 conflict serializable

() Assume S1 is conflict serializable Ss: Ss, S1 conflict equivalent P(Ss) = P(S1)

P(S1) acyclic since P(Ss) is acyclic

Page 33: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 33

() Assume P(S1) is acyclicTransform S1 as follows:(1) Take T1 to be transaction with no incident arcs(2) Move all T1 actions to the front

S1 = ……. qj(A)…….p1(A)…..

(3) we now have S1 = < T1 actions ><... rest ...>(4) repeat above steps to serialize rest!

T1

T2 T3

T4

Theorem

P(S1) acyclic S1 conflict serializable

Page 34: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 34

How to enforce serializable schedules?

Page 35: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 35

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 36: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 36

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 37: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 37

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

Scheduler

DB

How to enforce serializable schedules?

Page 38: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 38

A locking protocol

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

unlock: ui (A)

scheduler

T1 T2

locktable

Page 39: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 39

Rule #1: Well-formed transactions

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

Page 40: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 40

Rule #2 Legal scheduler

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

no lj(A)

Page 41: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 41

• 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 42: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 42

• 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 43: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 43

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 44: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 44

Schedule F

T1 T2 25 25

l1(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)

50l1(B);Read(B)B B+100;Write(B);u1(B)

150 250

150

A B

Page 45: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 45

Rule #3 Two phase locking (2PL)

for transactions

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

no unlocks no locks

Page 46: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 46

# locksheld byTi

Time Growing Shrinking Phase Phase

Page 47: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 47

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 48: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 48

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 49: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 49

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 50: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 50

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 51: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 51

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 52: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 52

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 53: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 53

Schedule H (T2 reversed)

T1 T2l1(A); Read(A) l2(B);Read(B)A A+100;Write(A) B Bx2;Write(B)… …

Page 54: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 54

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 55: Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control.

cs4432 concurrency control 55

• SUMMARY:– 2PL is commonly used solution for

concurrency

• NOTE:– But 2PL does not prevent deadlocks

• NEXT:– What are we going to do about deadlocks?