locks-ஐ ஒரு நிலையான global order-இல் acquire செய்யுங்கள், transactions-ஐ குறுகியதாக வைத்திருங்கள், பாதுகாப்பான இடத்தில் isolation-ஐக் குறைக்கவும், மேலும் ஒரு deadlock இன்னும் நடந்தால் தோற்றவரை retry செய்யுங்கள். ஒரு deadlock ஒரு cycle: transaction A row 1-ஐ hold செய்து row 2-க்காகக் காத்திருக்கிறது, அதே சமயம் B row 2-ஐ hold செய்து row 1-க்காகக் காத்திருக்கிறது — இருவரும் தொடர முடியாது, எனவே DB ஒன்றைக் கொல்கிறது.
நீங்கள் உடைக்க வேண்டிய cycle
Tx A Tx B
holds row 1 ──── waits ────▶ row 2 (held by B)
▲ │
│ waits │ holds
└────────── row 1 ◀────────────┘
(cycle = deadlock; DB aborts one victim)
