ஒரு deadlock என்பது இரண்டு (அல்லது அதற்கு மேற்பட்ட) transactions ஒவ்வொன்றும் மற்றொன்றுக்குத் தேவையான ஒரு lock ஐ வைத்திருக்கும்போது ஏற்படுகிறது, எனவே எதுவும் தொடர முடியாது — அவை ஒன்றுக்கொன்றுக்காக நிரந்தரமாகக் காத்திருந்து சிக்கிக்கொள்கின்றன. டேட்டாபேஸ்கள் deadlocks ஐக் கண்டறிந்து, ஒரு transaction ஐ நிறுத்துவதன் ("victim") மூலம் அவற்றைத் தீர்க்கின்றன, அது மீண்டும் முயற்சிக்க வேண்டும். காரணங்கள் மற்றும் தடுப்பைப் புரிந்துகொள்வது concurrent பயன்பாடுகளுக்கு முக்கியம்.
ஒரு 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.
