En deadlock oppstår når to (eller flere) transaksjoner hver holder en lås som den andre trenger, så ingen kan fortsette — de er fast låst og venter på hverandre for alltid. Databaser oppdager deadlocks og løser dem ved å avbryte en transaksjon ("offeret"), som må prøves på nytt. Å forstå årsakene og forebyggingen er viktig for samtidige applikasjoner.
Hvordan en deadlock oppstå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;
