Deadlock ხდება მაშინ, როდესაც ორი (ან მეტი) ტრანზაქცია ერთმანეთის მიერ საჭირო lock-ს ხელში უჭირავს, ამიტომ არცერთი ვერ გრძელდება — ისინი უსასრულოდ ერთმანეთის জადოსზე ელოდებიან. მონაცემთა ბაზები deadlock-ებს აღმოაჩენენ და მათ გადაჭრიან ერთი ტრანზაქციის შეწყვეტით ("victim"-ი), რომელმაც ხელახლა უნდა სცადოს. მიზეზების და პრევენციის გაგება중요 არის კონკურენტული აპლიკაციებისთვის.
როგორ ხდება 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.
; ;
accounts .. id; accounts .. id;
accounts .. id; accounts .. id;
