Një deadlock ndodh kur dy (ose më shumë) transaksione secila mbajnë një bllokadë që tjetra ka nevojë, kështu që asnjëra nuk mund të vazhdojë — ato janë të bllokuar në pritje të njëra-tjetrës përgjithmonë. Bazat e të dhënave zbulojnë deadlock-et dhe i zgjidhin ato duke abortuar një transaksion ("viktima"), i cili duhet të riprovo. Të kuptuarit e shkaqeve dhe parandalimit është i rëndësishëm për aplikacionet konkuruese.
Si ndodh një deadlock
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.
