Sobes.tech
Junior — Middle

Kaip gali sukelti sandoriai tarpusavio užblokavimus duomenų bazėje?

sobes.tech AI

Atsakymas iš AI

Tarpusavyje užblokuoti (deadlockai) duomenų bazėse atsiranda, kai dvi ar daugiau transakcijų užblokuoja išteklius, kurių viena kitai reikia tęsti darbą, ir nė viena negali tęsti.

Pavyzdys: Transakcija A įgijo užraktą ant lentelės 1 ir bando gauti užraktą ant lentelės 2, tuo tarpu transakcija B jau įgijo užraktą ant lentelės 2 ir bando gauti užraktą ant lentelės 1. Abi transakcijos laukia išteklių atlaisvinimo, kas sukelia tarpusavio užblokavimą.

Siekiant išvengti tokių situacijų, duomenų bazės naudoja aptikimo ir sprendimo mechanizmus, pavyzdžiui, vienos iš transakcijų atšaukimą, ir rekomenduoja laikytis užraktų įsigijimo tvarkos bei minimizuoti užraktų laikymo laiką.