locks ને consistent global order માં acquire કરો, transactions ટૂંકા રાખો, જ્યાં safe હોય ત્યાં isolation ઘટાડો, અને deadlock છતાં થાય તો loser ને 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)
