एक डेडलॉक तेव्हा होतो जेव्हा दोन (किंवा अधिक) ट्रांজॅक्शन्स प्रत्येकी एक लॉक धरतात जो दुसर्याला आवश्यक आहे, त्यामुळे कोणीही पुढे जाऊ शकत नाही — ते एकमेकांचे प्रतीक्षा करत असीमपणे अडकून राहतात. डेटाबेसेस डेडलॉक्स शोधतात आणि एक ट्रांजॅक्शन abort करून त्यांचे निराकरण करतात ("victim"), ज्याला पुन्हा प्रयत्न करावा लागतो. समवर्ती अनुप्रयोगांसाठी कारणे आणि प्रतिबंधकता समजून घेणे महत्वाचे आहे.
डेडलॉक कसे होतो
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.
; ;
accounts .. id; accounts .. id;
accounts .. id; accounts .. id;
