Deadlock hutokea wakati transactions mbili (au zaidi) kila moja inashikilia lock ambayo nyingine inahitaji, hivyo hakuna inayoweza kuendelea — zimekwama zikisubiriana milele. Hifadhidata hutambua deadlocks na huzitatua kwa kusitisha transaction moja ("victim"), ambayo lazima ijaribu tena. Kuelewa sababu na uzuiaji ni muhimu kwa programu za concurrent.
Jinsi deadlock inavyotokea
Transaction A: locks row 1, then wants row 2
Transaction B: locks row 2, then wants row 1
→ A waits for B (to release row 2), B waits for A (to release row 1) → DEADLOCK
Neither can proceed; they're waiting on each other in a cycle.
; ;
accounts .. id; accounts .. id;
accounts .. id; accounts .. id;
