Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 CS216 Advanced Database Systems Shivnath Babu Notes 11: Concurrency Control.

Similar presentations


Presentation on theme: "1 CS216 Advanced Database Systems Shivnath Babu Notes 11: Concurrency Control."— Presentation transcript:

1 1 CS216 Advanced Database Systems Shivnath Babu Notes 11: Concurrency Control

2 2 Transaction Programming abstraction Implement real-world transactions –Banking transaction –Airline reservation

3 3 Transaction: Programmer’s Role Consistent State Transaction

4 4 Transaction: System’s Role Atomicity –All changes of the transaction recorded or none at all Durability –All future transactions see the changes made by this transaction if it completes Isolation –Net effect as if the transaction executed in isolation

5 5 Transaction: States BeginRun Abort Commit

6 6 Transactions Historical note: –Turing Award for Transaction concept –Jim Gray (1998) Interesting reading: Transaction Concept: Virtues and Limitations by Jim Gray http://www.hpl.hp.com/techreports/tandem/TR-81.3.pdf

7 7 Transaction: Programmer’s View See Section 8.6 of the textbook

8 8 Context Last class: –Ensure atomicity in presence of failures Next few classes: –Ensure Isolation during concurrency

9 9 Issues with Concurrency: Example A = 500 B = 500 C = 500 Account Balances Bank database: 3 Accounts Property: A + B + C = 1500 Money does not leave the system

10 10 Issues with Concurrency: Example Read (A, t) t = t - 100 Write (A, t) Read (B, t) t = t + 100 Write (B, t) Transaction T1: Transfer 100 from A to B A = 400, B = 600, C = 500 A = 500, B = 500, C = 500

11 11 Issues with Concurrency: Example Read (A, s) s = s - 100 Write (A, s) Read (C, s) s = s + 100 Write (C, s) Transaction T2: Transfer 100 from A to C

12 Read (A, t) t = t - 100 Write (A, t) Read (B, t) t = t + 100 Write (B, t) Read (A, s) s = s - 100 Write (A, s) Read (C, s) s = s + 100 Write (C, s) Transaction T1Transaction T2ABC 400600 500 400500 400500 400500600 400 + 600 + 600 = 1600

13 Read (A, t) t = t - 100 Write (A, t) Read (B, t) t = t + 100 Write (B, t) Read (A, s) s = s - 100 Write (A, s) Read (C, s) s = s + 100 Write (C, s) Transaction T1Transaction T2ABC 300600 500 400500 300500 300500600 300 + 600 + 600 = 1500

14 14 Terminology Schedule: –The exact sequence of (relevant) actions of one or more transactions

15 15 Problems Which schedules are “correct”? –Mathematical characterization How to build a system that allows only “correct” schedules? –Efficient procedure to enforce correctness

16 16 Correct Schedules: Serializability Initial database state is consistent Transaction: –consistent state  consistent state Serial execution of transactions: –Initial state  consistent state Serializable schedule: –A schedule equivalent to a serial schedule –Always “correct”

17 Read (A, t) t = t - 100 Write (A, t) Read (B, t) t = t + 100 Write (B, t) Read (A, s) s = s - 100 Write (A, s) Read (C, s) s = s + 100 Write (C, s) ABC 300600 500 400500600 300 + 600 + 600 = 1500 Serial Schedule T1 T2

18 Read (A, t) t = t - 100 Write (A, t) Read (B, t) t = t + 100 Write (B, t) Read (A, s) s = s - 100 Write (A, s) Read (C, s) s = s + 100 Write (C, s) ABC 300600 500 400600500 300 + 600 + 600 = 1500 Serial Schedule T2 T1

19 19 Serial Schedule SnS0S1S2 T1 T2 Tn Consistent States

20 Read (A, t) t = t - 100 Write (A, t) Read (B, t) t = t + 100 Write (B, t) Read (A, s) s = s - 100 Write (A, s) Read (C, s) s = s + 100 Write (C, s) Transaction T2Transaction T1 Is this Serializable?

21 Read (A, t) t = t - 100 Write (A, t) Read (B, t) t = t + 100 Write (B, t) Read (A, s) s = s - 100 Write (A, s) Read (C, s) s = s + 100 Write (C, s) Equivalent Serial Schedule Transaction T2Transaction T1

22 Read (A, t) t = t - 100 Write (A, t) Read (B, t) t = t + 100 Write (B, t) Read (A, s) s = s - 100 Write (A, s) Read (C, s) s = s + 100 Write (C, s) Is this Serializable? Transaction T2Transaction T1 No. In fact, it leads to inconsistent state

23 Read (A, t) t = t - 100 Write (A, t) Read (B, t) t = t + 100 Write (B, t) Read (A, s) s = s - 100 Write (A, s) Read (C, s) s = s + 100 Write (C, s) Is this Serializable? Transaction T2Transaction T1 0 0

24 Read (A, t) t = t - 100 Write (A, t) Read (B, t) t = t + 100 Write (B, t) Read (A, s) s = s - 0 Write (A, s) Read (C, s) s = s + 0 Write (C, s) Is this Serializable? Transaction T2Transaction T1 Yes, T2 is no-op

25 Read (A, t) t = t - 100 Write (A, t) Read (B, t) t = t + 100 Write (B, t) Read (A, s) s = s - 0 Write (A, s) Read (C, s) s = s + 0 Write (C, s) Serializable Schedule Transaction T2Transaction T1 Serializability depends on code details

26 Read (A, t) t = t - 100 Write (A, t) Read (B, t) t = t + 100 Write (B, t) Read (A, s) s = s - 100 Write (A, s) Read (C, s) s = s + 100 Write (C, s) Transaction T2Transaction T1 Serializable Schedule Still Serializable!

27 27 Serializability General Serializability: –Hard to determine Goal: weaker serializability –Determined from database operations alone Database Operations: –Reads, Writes, Inserts, …

28 28 Simpler Notation r (X) T Transaction T reads X w (X) T Transaction T writes X

29 29 What is X in r (X)? X could be any component of a database: –Attribute of a tuple –Tuple –Block in which a tuple resides –A relation –…

30 30 New Notation: Example Schedule r1(A) w1(A) r2(A) w2(A) r1(B) w1(B) r2(B) w2(B) time

31 31 Conflict Serializability Weaker notion of serializability Depends only on reads and writes

32 32 Conflict Serializability Serializable Schedules Conflict Serializable Schedules

33 33 Conflict Serializable Schedule SS1S2 Sn Serial Schedule Conflict Serializable Schedule Transformations: swap non-conflicting actions

34 34 Transformation: Example r1(A) w1(A) r2(A) w2(A) r1(B) w1(B) r2(B) w2(B) r1(A) w1(A) r2(A) r1(B) w2(A) w1(B) r2(B) w2(B)

35 35 Non-Conflicting Actions Two actions are non-conflicting if whenever they occur consecutively in a schedule, swapping them does not affect the final state produced by the schedule. Otherwise, they are conflicting.

36 36 Conflicting or Non-Conflicting? (Work on paper: Example 1)

37 37 Conflicting Actions: General Rules Two actions of the same transaction conflict: –r1(A) w1(B) –r1(A) r1(B) Two actions over the same database element conflict, if one of them is a write –r1(A) w2(A) –w1(A) w2(A)

38 38 Conflict Serializability Examples (Work on paper: Example 2 and 3)

39 39 Testing Conflict Serializability Construct precedence graph G for given schedule S S is conflict-serializable iff G is acyclic

40 40 Graph Theory 101 Directed Graph: Nodes

41 41 Graph Theory 101 Directed Graph:Edges

42 42 Graph Theory 101 Directed Graph: Cycle

43 43 Graph Theory 101 Directed Graph: Not a cycle

44 44 Graph Theory 101 Acyclic Graph: A graph with no cycles

45 45 Graph Theory 101 Acyclic Graph:

46 46 Testing Conflict Serializability Construct precedence graph G for given schedule S S is conflict-serializable iff G is acyclic

47 47 Precedence Graph Precedence graph for schedule S: –Nodes: Transactions in S –Edges: Ti → Tj whenever S: … r i (X) … w j (X) … S: … w i (X) … r j (X) … S: … w i (X) … w j (X) … Note: not necessarily consecutive

48 48 Precedence Graph Ti → Tj whenever: –There is an action of Ti that occurs before a conflicting action of Tj.

49 49 Precedence Graph Example (Work on paper: Example 4)

50 50 Testing Conflict Serializability Construct precedence graph G for given schedule S S is conflict-serializable iff G is acyclic

51 51 Correctness of precedence graph method (Work on paper) Also read: Section 18.2.3

52 52 Serializability vs. Conflict Serializability (Work on paper: Example 5)

53 53 View Serializability A schedule S is view serializable if there exists a serial schedule S’, such that the source of all reads in S and S’ are the same.

54 54 View Serializability Example r2(B) w2(A) r1(A) r3(A) w1(B) w2(B) w3(B) r2(B) w2(A) w2(B) r1(A) w1(B) r3(A) w3(B) View Serializable Schedule Serial Schedule

55 55 View Serializability Example r2(B) w2(A) r1(A) r3(A) w1(B) w2(B) w3(B) r2(B) w2(A) w2(B) r1(A) w1(B) r3(A) w3(B) View Serializable Schedule Serial Schedule

56 56 View Serializability Example r2(B) w2(A) r1(A) r3(A) w1(B) w2(B) w3(B) r2(B) w2(A) w2(B) r1(A) w1(B) r3(A) w3(B) View Serializable Schedule Serial Schedule

57 57 View Serializability Example r2(B) w2(A) r1(A) r3(A) w1(B) w2(B) w3(B) r2(B) w2(A) w2(B) r1(A) w1(B) r3(A) w3(B) View Serializable Schedule Serial Schedule

58 58 View Serializability Serializable Schedules Conflict Serializable Schedules View Serializable Schedules

59 59 Problems Which schedules are “correct”? –Serializability theory How to build a system that allows only “correct” schedules? –Efficient procedure to enforce correctness serializable schedules

60 60 Scheduler DB Enforcing Serializability T1 T2 Tn reads/writes Strategy: Prevent precedence graph cycles?

61 61 Next class Enforcing serializability –Locking-based techniques –Timestamp-based techniques –Validation-based techniques


Download ppt "1 CS216 Advanced Database Systems Shivnath Babu Notes 11: Concurrency Control."

Similar presentations


Ads by Google