Two-Phase Locking (2PL) How two-phase locking controls concurrent transactions, and what I got wrong along the way