একটি ডেডলক ঘটে যখন দুটি (বা তার বেশি) ট্রানজ্যাকশন প্রত্যেকে একটি লক ধরে রাখে যা অন্যটির প্রয়োজন, তাই কোনোটিই এগিয়ে যেতে পারে না — তারা একে অপরের জন্য অপেক্ষা করে চিরকালের জন্য আটকে থাকে। ডাটাবেসগুলি ডেডলক সনাক্ত করে এবং একটি ট্রানজ্যাকশন বাতিল করে ("ভিক্টিম") এর মাধ্যমে সমাধান করে, যা অবশ্যই পুনরায় চেষ্টা করতে হবে। সমসাময়িক অ্যাপ্লিকেশনের জন্য কারণ এবং প্রতিরোধ বোঝা গুরুত্বপূর্ণ।
একটি ডেডলক কীভাবে ঘটে
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;
