Mrtva točka (deadlock) se javlja kada dvije (ili više) transakcije drže zaključanu resurs što je drugoj potrebna, pa nijedna ne može nastaviti — zaglavile se čekajući jedne druge zauvijek. Baze podataka detektiraju mrtve točke i rješavaju ih prekidom jedne transakcije ("žrtva"), koja mora ponovno pokušati. Razumijevanje uzroka i prevencije važno je za konkurentne aplikacije.
Kako se mrtva točka javlja
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;
