locks کو ایک مستقل global ترتیب میں حاصل کریں، transactions مختصر رکھیں، جہاں محفوظ ہو isolation کم کریں، اور جب پھر بھی deadlock ہو تو ہارنے والے کو retry کریں۔ ایک deadlock ایک cycle ہے: transaction A row 1 رکھتا ہے اور row 2 کا انتظار کرتا ہے، جبکہ B row 2 رکھتا ہے اور 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)
