140 likes | 299 Views
Concurrency Control 18.2 Conflict Serializability. Geetha Ranjini Viswanathan ID: 121. 18.2 Conflict- Serializability. 18.2.1 Conflicts 18.2.2 Precedence Graphs and a Test for Conflict- Serializability 18.2.3 Why the Precedence-Graph Test Works.
E N D
Concurrency Control18.2 Conflict Serializability GeethaRanjiniViswanathan ID: 121
18.2 Conflict-Serializability • 18.2.1 Conflicts • 18.2.2 Precedence Graphs and a Test for Conflict-Serializability • 18.2.3 Why the Precedence-Graph Test Works
18.2.1 Conflicts • Conflict -a pair of consecutive actions in a schedule such that, if their order is interchanged, the final state produced by the schedule is changed.
18.2.1 Conflicts • Non-conflicting situations: Assuming Ti and Tj are different transactions, i.e., i ≠ j: • ri(X); rj(Y) will never conflict, even if X = Y. • ri(X); wj(Y) will not conflict for X ≠ Y. • wi(X); rj(Y) will not conflict for X ≠ Y. • wi(X); wj(Y) will not conflict for X ≠ Y.
18.2.1 Conflicts • Two actions of the same transactions always conflictri(X); wi(Y) • Two writes of the same database element by different transactions conflictwi(X); wj(X) • A read and a write of the same database element by different transaction conflictri(X); wj(X)wi(X); rj(X) • Conflicting situations: Three situations where actions may not be swapped:
18.2.1 Conflicts • Conclusions: Any two actions of different transactions may be swapped unless: • They involve the same database element, and • At least one is a write • The schedules S and S’ are conflict-equivalent, if S can be transformed into S’ by a sequence of non-conflicting swaps of adjacent actions. • A schedule is conflict-serializable if it is conflict-equivalent to a serial schedule.
18.2.1 Conflicts • Example 18.6 Conflict-serializable schedule S: r1(A); w1(A); r2(A); w2(A); r1(B); w1(B); r2(B); w2(B); Above schedule is converted to the serial schedule S’ (T1, T2) through a sequence of swaps. 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);r1(A); w1(A); r1(B); r2(A); w2(A); w1(B); r2(B); w2(B);r1(A); w1(A); r1(B); r2(A); w1(B); w2(A); r2(B); w2(B); S’: r1(A); w1(A); r1(B); w1(B); r2(A); w2(A); r2(B); w2(B);
18.2.2 Precedence Graphs and a Test for Conflict-Serializability • Given a schedule S, involving transactions T1 and T2, T1 takes precedence over T2 (T1 <sT2), if there are actions A1of T1 and A2of T2, such that: • A1 is ahead of A2 in S, • Both A1 and A2 involve the same database element, and • At least one of A1 and A2 is a write action • We cannot swap the order of A1 and A2. • A1 will appear before A2 in any schedule that is conflict-equivalent to S. • A conflict-equivalent serial schedule must have T1 before T2.
18.2.2 Precedence Graphs and a Test for Conflict-Serializability • Precedence graph: • Nodes represent transactions of S • Arc from node i to node j, if Ti <S Tj • Example 18.7 Given Schedule S: r2(A); r1(B); w2(A); r3(A); w1(B); w3(A); r2(B); w2(B); Precedence Graph Acyclic graph Schedule is conflict-serializable T3 T1 T2
18.2.2 Precedence Graphs and a Test for Conflict-Serializability • Example 18.8 S: r2(A); r1(B); w2(A); r3(A); w1(B); w3(A); r2(B); w2(B); Convert S to serial schedule S’ (T1, T2, T3). r1(B); r2(A); w2(A); r3(A); w1(B); w3(A); r2(B); w2(B); r1(B); r2(A); w2(A); w1(B); r3(A); w3(A); r2(B); w2(B); r1(B); r2(A); w1(B); w2(A); r3(A); w3(A); r2(B); w2(B); r1(B); w1(B); r2(A); w2(A); r3(A); w3(A); r2(B); w2(B); r1(B); w1(B); r2(A); w2(A); r3(A); r2(B); w3(A); w2(B); r1(B); w1(B); r2(A); w2(A); r2(B); r3(A); w3(A); w2(B); r1(B); w1(B); r2(A); w2(A); r2(B); r3(A); w2(B); w3(A); r1(B); w1(B); r2(A); w2(A); r2(B); w2(B); r3(A); w3(A); S’: r1(B); w1(B); r2(A); w2(A); r2(B); w2(B); r3(A); w3(A);
18.2.2 Precedence Graphs and a Test for Conflict-Serializability • Example 18.9 Given Schedule S: r2(A); r1(B); w2(A); r2(B); r3(A); w1(B); w3(A); w2(B); Precedence Graph Cyclicgraph Schedule is NOT conflict-serializable T1 T2 T3
18.2.3 Why the Precedence-Graph Test Works • Consider a cycle involving n transactions T1 —> T2 ... —> Tn —> T1 • In the hypothetical serial order, the actions of T1must precede those of T2, which precede those of T3, and so on, up to Tn. • But the actions of Tn, which therefore come after those of T1, are also required to precede those of T1. This puts constraints on legal swaps between T1 and Tn. • Thus, if there is a cycle in the precedence graph, then the schedule is not conflict-serializable.