Ett dödläge inträffar när två (eller fler) transaktioner var och en håller ett lås som den andra behöver, så ingen kan fortsätta — de sitter fast och väntar på varandra för evigt. Databaser detekterar dödlägen och löser dem genom att avbryta en transaktion (offret), som måste försöka igen. Att förstå orsakerna och förebyggandet är viktigt för samtidiga applikationer.
Hur ett dödläge uppstår
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;
