2PL and Recoverability
2PL does not guarantee recoverability
This non-recoverable execution is 2-phase locked wl1[x] w1[x] wu1[x] rl2[x] r2[x] c2 … c1
- hence, it is not strict and allows cascading aborts
However, holding write locks until after commit or abort guarantees strictness
- and hence avoids cascading aborts and is recoverable
- In the above example, T1 must commit before it’s first unlock-write (wu1): wl1[x] w1[x] c1 wu1[x] rl2[x] r2[x] c2