Presentation on theme: "Database System Principles 18.7 Tree Locking Protocol CS257 Section 1 Spring 2012 Dhruv Jalota ID: 115."— Presentation transcript:
Database System Principles 18.7 Tree Locking Protocol CS257 Section 1 Spring 2012 Dhruv Jalota ID: 115
Index Motivation B-Tree Protocol Why it works Example Precedence graph Proof
Motivation Data elements are not hierarchically stored by containment but rather they are DISJOINT. A B-TREE is the ideal data structure to represent such a database since traversal to reach any data element would require beginning at the root. Two-phase locking in such a situation makes concurrent use of DB by transactions impossible
B-TREE details Basic DS: - Keeps records in sorted order - Uses partially full blocks to speed up insertion and deletion Locking structure: - Granularity is at node level. Smaller is not beneficial and entire tree is infeasible!
Tree protocol Transaction’s first lock can be any node Subsequent locks only if currently locked parent Nodes unlocked any time Cannot relock if released node, even if parent is still held (As we can see – NOT 2PL)
Why it works Implies a serial order on transactions in schedule Define Ti < S Tj (order of precedence) In schedule S, Ti and Tj lock common nodes, but Ti locks first
Example Figure 18.30 from text book. And figure 18.31
Precedence graph Figure 18.32 from text book. T1 < S T2 T3 < S T2 Acyclic graph means any topological order is an equivalent serial schedule Thus, (T1, T3, T2) = (T3, T1, T2) This is because nodes are touched in same order.
Proof for acyclic precedence graph giving equivalent schedules If two transactions lock several elements in common, then they are all locked in the same order Figure 18.33