Presentation is loading. Please wait.

Presentation is loading. Please wait.

Yan Huang - CSCI5330 Database Implementation – Concurrency Control

Similar presentations


Presentation on theme: "Yan Huang - CSCI5330 Database Implementation – Concurrency Control"— Presentation transcript:

1 Yan Huang - CSCI5330 Database Implementation – Concurrency Control
Concurrency Control I 3/9/2005 Yan Huang - CSCI5330 Database Implementation – Concurrency Control

2 Yan Huang - CSCI5330 Database Implementation – Concurrency Control
T1 T2 … Tn DB (consistency constraints) 3/9/2005 Yan Huang - CSCI5330 Database Implementation – Concurrency Control

3 Enforce Conflict Serializable Schedules
Prevent cycles in precedence graph from occurring T1 T2 ….. Tn Scheduler DB 3/9/2005 Yan Huang - CSCI5330 Database Implementation – Concurrency Control

4 Yan Huang - CSCI5330 Database Implementation – Concurrency Control
A locking protocol For transaction i Use li to lock an item Use ui to unlock the lock enforced by transaction i T1 T2 lock table scheduler 3/9/2005 Yan Huang - CSCI5330 Database Implementation – Concurrency Control

5 Well behaved transactions
Ti: … li(A) … pi(A) … ui(A) ... 3/9/2005 Yan Huang - CSCI5330 Database Implementation – Concurrency Control

6 Example of a transaction performing locking
T1: l1(A); read (A); u1(A); l1(B); read (B); u1(B); display(A+B) Sufficient to guarantee serializability ? 3/9/2005 Yan Huang - CSCI5330 Database Implementation – Concurrency Control

7 Yan Huang - CSCI5330 Database Implementation – Concurrency Control
Example: T2: Read(A) T3: Read(A) A  A A  A2 Write(A) Write(A) Read(B) Read(B) B  B B B2 Write(B) Write(B) Constraint: A=B 3/9/2005 Yan Huang - CSCI5330 Database Implementation – Concurrency Control

8 Yan Huang - CSCI5330 Database Implementation – Concurrency Control
Schedule A A B T T l1(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) 3/9/2005 Yan Huang - CSCI5330 Database Implementation – Concurrency Control

9 Two-Phase Locking Protocol
Phase 1: Growing Phase transaction may obtain locks transaction may not release locks Phase 2: Shrinking Phase transaction may release locks transaction may not obtain locks 3/9/2005 Yan Huang - CSCI5330 Database Implementation – Concurrency Control

10 Yan Huang - CSCI5330 Database Implementation – Concurrency Control
Ti = ……. li(A) ………... ui(A) ……... no unlocks no locks 3/9/2005 Yan Huang - CSCI5330 Database Implementation – Concurrency Control

11 Yan Huang - CSCI5330 Database Implementation – Concurrency Control
# locks held by Ti Time Growing Shrinking Phase Phase 3/9/2005 Yan Huang - CSCI5330 Database Implementation – Concurrency Control

12 Yan Huang - CSCI5330 Database Implementation – Concurrency Control
What happens to a transaction which tries to lock an item but failed? 3/9/2005 Yan Huang - CSCI5330 Database Implementation – Concurrency Control

13 Yan Huang - CSCI5330 Database Implementation – Concurrency Control
Schedule B T T3 l1(A);Read(A) A A+100;Write(A) l1(B); u1(A) l2(A);Read(A) A Ax2;Write(A); l2(B) Read(B);B B+100 Write(B); u1(B) l2(B); u2(A);Read(B) B Bx2;Write(B);u2(B); delayed 3/9/2005 Yan Huang - CSCI5330 Database Implementation – Concurrency Control

14 Yan Huang - CSCI5330 Database Implementation – Concurrency Control
2PL  conflict-serializable schedules? To help in proof: Definition Shrink(Ti) = SH(Ti) = first unlock action of Ti 3/9/2005 Yan Huang - CSCI5330 Database Implementation – Concurrency Control

15 Yan Huang - CSCI5330 Database Implementation – Concurrency Control
First: Ti  Tj in S  SH(Ti) <S SH(Tj) Proof: Ti  Tj means that S = … pi(A) … ui(A) … lj(A) ... qj(A) … 3/9/2005 Yan Huang - CSCI5330 Database Implementation – Concurrency Control

16 Yan Huang - CSCI5330 Database Implementation – Concurrency Control
Then: (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 3/9/2005 Yan Huang - CSCI5330 Database Implementation – Concurrency Control

17 Yan Huang - CSCI5330 Database Implementation – Concurrency Control
Deadlock To handle a deadlock one of T4 or T5 must be rolled back and its locks released. T T5 l3(B) read(B) write(B) l4(A) read(A) l4(B) l3(A) 3/9/2005 Yan Huang - CSCI5330 Database Implementation – Concurrency Control

18 Yan Huang - CSCI5330 Database Implementation – Concurrency Control
Starvation A transaction does not get its turn for a long time Example: A transaction may be waiting for a lock on an item, while a sequence of other transactions request and are granted an lock on the same item. The same transaction is repeatedly rolled back due to deadlocks. Concurrency control manager can be designed to prevent starvation. 3/9/2005 Yan Huang - CSCI5330 Database Implementation – Concurrency Control

19 Yan Huang - CSCI5330 Database Implementation – Concurrency Control
2PL and Deadlock Are schedules from 2PL transactions deadlock free? 3/9/2005 Yan Huang - CSCI5330 Database Implementation – Concurrency Control

20 2PL and Possible Schedules
Does 2PL allow all possible conflict serializable schedules? 3/9/2005 Yan Huang - CSCI5330 Database Implementation – Concurrency Control

21 Yan Huang - CSCI5330 Database Implementation – Concurrency Control
Beyond this simple 2PL protocol, it is all a matter of improving performance and allowing more concurrency…. Shared locks Multiple granularity Inserts, deletes and phantoms Other types of C.C. mechanisms 3/9/2005 Yan Huang - CSCI5330 Database Implementation – Concurrency Control


Download ppt "Yan Huang - CSCI5330 Database Implementation – Concurrency Control"

Similar presentations


Ads by Google