Smart Locking Strategy
Instead of getting exclusive lock immediately, start with shared lock and upgrade when needed.
Example:
Transaction T8: read(a1), read(a2), ..., write(a1)
Transaction T9: read(a1), read(a2), ..., display(a1)
Without conversion:
T8 needs X-lock on a1 from start → blocks T9 completely
With conversion:
Both start with S-lock on a1 → run concurrently
T8 upgrades to X-lock only when writing → better performance!
Conversion Rules:
-
Upgrade (S→X): Only during growing phase
-
Downgrade (X→S): Only during shrinking phase