Junior — Middle
Kuidas võivad tehingud põhjustada vastastikuseid lukustusi andmebaasis?
sobes.tech AI
Vastus AI-lt
Vastastikused lukustused (deadlockid) andmebaas tekivad, kui kaks või enam tehingut lukustavad ressursid, mida teised tehingud vajavad jätkamiseks, ning ükski neist ei saa jätkata.
Näide: Tehing A on saanud lukustuse tabelil 1 ja püüab saada lukustuse tabelil 2, samal ajal kui tehing B on juba saanud lukustuse tabelil 2 ja püüab saada lukustuse tabelil 1. Mõlemad tehingud ootavad ressursside vabastamist, mis viib vastastikuse lukustamiseni.
Selliste olukordade vältimiseks kasutavad andmebaasid deadlockide tuvastamise ja lahendamise mehhanisme, näiteks ühe tehingu tagasivõtmist, ning soovitavad järgida lukustuste saamise järjekorda ja minimeerida lukustuste hoidmise aega.