Kas yra aklavietės auka?

Aklavietės auka yra kompiuterio vartotojas, veikiantis kaip klientas, prisijungęs prie serverio, kurio ryšį serverio priegloba pasirinko nutraukti, kad išspręstų aklavietę. Tokio tipo aklavietė dažnai iškyla, kai du skirtingi procesai bando panaudoti tuos pačius išteklius, todėl abu procesai užsiblokuoja. Kad išspręstų šią problemą, daugelis serverių duomenų bazių sistemų gali aptikti, kada įvyksta aklavietė, ir tada pasirinkti nutraukti vieno iš dviejų procesų ryšį. Programa gali savavališkai pasirinkti aklavietės auką, nors vartotojas paprastai pasirenkamas kaip tas, kuris gali lengviausia prisijungti prie sistemos.

Terminas „aklavietės auka“ paprastai vartojamas klaidos arba išimties pranešime, kurį sistema rodo vartotojui, kai nutraukiamas jo ryšys. Ši klaida įvyksta situacijoje, kuri paprastai vadinama aklaviete. Apskritai, aklavietė įvyksta, kai du prie serverio prisijungę vartotojai bando pasiekti tuos pačius išteklius tokiu būdu, kuris užblokuoja sistemą. Pavyzdžiui, jei vartotojas A naudoja 1 išteklius ir jam taip pat reikia naudoti 2 išteklius, o vartotojas B naudoja 2 išteklius ir taip pat turi naudoti 1 išteklius, įvyksta aklavietė, nes nė vienas vartotojas negali užbaigti savo proceso.

Šiame pavyzdyje sistema pasirinktų vieną iš dviejų vartotojų kaip aklavietės auką ir jo ryšys su serveriu būtų nutrauktas. Kai tai įvyksta, kitas vartotojas gali baigti savo procesą, užbaigdamas aklavietę, o aklavietės auka gali vėl prisijungti prie serverio. Dauguma serverių duomenų bazių programų yra sukurtos su aklavietės aptikimu, kuri paprastai aptinka aklavietę po tam tikro laiko. Nors aklavietė nebūtinai yra didelė problema, ji gali sukelti nepatogumų vartotojams, ypač tiems, kurie yra aklavietės auka, ir rodo vieną ar daugiau serverio duomenų bazės programavimo klaidų.

Būdas, kuriuo serveris pasirenka aklavietės auką, gali skirtis. Kai kurios programos parenka auką visiškai atsitiktinai. Nors tai gali būti gana veiksminga, nes bet koks pasirinkimas veda prie sprendimo ir aklavietės pabaigos, tai ne visada yra idealus būdas. Serveris paprastai yra užprogramuotas įvertinti du vartotojus ir pasirinkti tą, kuris galėtų lengviausia prisijungti iš naujo arba kuris dėl atsijungimo praras mažiausiai duomenų.