Download presentation
Presentation is loading. Please wait.
Published byEzekiel Eld Modified over 9 years ago
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.