Achiziționează lock-urile într-o ordine globală consistentă, ține tranzacțiile scurte, coboară izolarea unde e sigur și reîncearcă perdantul când un deadlock tot se întâmplă. Un deadlock este un ciclu: tranzacția A ține rândul 1 și așteaptă rândul 2, în timp ce B ține rândul 2 și așteaptă rândul 1 — niciuna nu poate continua, așa că DB-ul o omoară pe una.
Ciclul pe care trebuie să-l rupi
Tx A Tx B
holds row 1 ──── waits ────▶ row 2 (held by B)
▲ │
│ waits │ holds
└────────── row 1 ◀────────────┘
(cycle = deadlock; DB aborts one victim)
