Masquerade Mimicry Attack Detection: A Randomised Approach
Download
Report
Transcript Masquerade Mimicry Attack Detection: A Randomised Approach
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
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
• Conflicting situations:
Three situations where actions may not be swapped:
• Two actions of the same transactions always conflict
ri(X); wi(Y)
• Two writes of the same database element by different
transactions conflict
wi(X); wj(X)
• A read and a write of the same database element by
different transaction conflict
ri(X); wj(X)
wi(X); rj(X)
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 nonconflicting swaps of adjacent actions.
• A schedule is conflict-serializable if it is conflictequivalent 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 <s T2), if there are
actions A1 of T1 and A2 of 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
T1
T2
T3
Acyclic graph Schedule is conflict-serializable
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
T1
T2
T3
Cyclic graph Schedule is NOT conflict-serializable
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 T1 must
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.
Questions?