Deadlockdetectie (DB)
Het mechanisme dat opmerkt wanneer twee (of meer) transacties in een kring op elkaars locks wachten en nooit verder kunnen. De database doorbreekt de deadlock door een "slachtoffer" te kiezen en dat automatisch terug te draaien.
Probleem: transactie A houdt lock 1 vast en wil lock 2; transactie B houdt lock 2 vast en wil lock 1, waardoor geen van beide verder kan (een klassieke deadlock). Detectie: de database bouwt een "wait-for graph" (wie wacht op wie) en zoekt naar cycli. Wordt er een gevonden, dan wordt een slachtoffer gekozen (vaak de transactie met het minste werk achter de rug, dus het goedkoopst terug te draaien) en afgebroken met een deadlockfout, zodat de rest verder kan. InnoDB en PostgreSQL doen dit automatisch en continu. De applicatie moet de deadlockfout kunnen afvangen en het opnieuw proberen. Voorkomen: vergrendel resources altijd in dezelfde volgorde en houd transacties kort. Niet hetzelfde als een lock-timeout (die na een tijd gewoon opgeeft zonder de oorzaak te begrijpen). Verwant aan pessimistische concurrency en MVCC-snapshot.