Concept Flow - Two-phase locking (2PL)
Start Transaction
Growing Phase
Lock Point
Shrinking Phase
End Transaction
The transaction first acquires all needed locks (growing phase), then releases them (shrinking phase) without acquiring new locks.
Transaction T: 1. Lock X (growing) 2. Lock Y (growing) 3. Unlock X (shrinking) 4. Unlock Y (shrinking)
| Step | Action | Phase | Locks Held | Can Acquire New Locks? |
|---|---|---|---|---|
| 1 | Lock X | Growing | X | Yes |
| 2 | Lock Y | Growing | X, Y | No |
| 3 | Unlock X | Shrinking | Y | No |
| 4 | Unlock Y | Shrinking | No | |
| 5 | Transaction Ends | End | No |
| Locks Held | Start | After Step 1 | After Step 2 | After Step 3 | After Step 4 | Final |
|---|---|---|---|---|---|---|
| Locks | None | X | X, Y | Y | None | None |
Two-phase locking (2PL) controls transaction locks in two phases: 1. Growing phase: acquire all locks needed. 2. Shrinking phase: release locks, no new locks allowed. This ensures serializability and prevents conflicts.