Kaj je žrtev zastoja?

Žrtev zastoja je uporabnik računalnika, ki deluje kot odjemalec, povezan s strežnikom, katerega povezavo je gostitelj strežnika izbral za prekinitev, da bi rešil zastoj. Ta vrsta zastoja se pogosto pojavi, ko dva različna procesa poskušata uporabiti ista sredstva, kar povzroči, da se oba procesa zakleneta. Da bi rešili to težavo, lahko mnogi sistemi strežniških baz podatkov zaznajo, kdaj pride do zastoja, in se nato odločijo za prekinitev povezave enega od dveh procesov. Žrtev zastoja lahko program poljubno izbere, čeprav je uporabnik običajno izbran kot tisti, ki se lahko najlažje ponovno poveže s sistemom.

Izraz »žrtev zastoja« se običajno uporablja v sporočilu o napaki ali izjemi, ki ga sistem prikaže uporabniku, ko se njegova ali njena povezava prekine. Ta napaka se pojavi v situaciji, ki se običajno imenuje zastoj. Na splošno do zastoja pride, ko dva uporabnika, povezana s strežnikom, poskušata dostopati do istih virov na način, ki ustvari zaklepanje sistema. Na primer, če uporabnik A uporablja vir 1 in mora uporabiti tudi vir 2, medtem ko uporabnik B uporablja vir 2 in mora uporabiti tudi vir 1, pride do zastoja, saj noben uporabnik ne more dokončati svojega postopka.

V tem primeru bi sistem izbral enega od dveh uporabnikov kot žrtev zastoja in njegova ali njena povezava s strežnikom bi bila prekinjena. Ko se to zgodi, lahko drugi uporabnik zaključi svoj postopek, prekine zastoj in žrtev zastoja se lahko znova poveže s strežnikom. Večina strežniških programov baz podatkov je zasnovanih z zaznavanjem zastoja, ki običajno zazna zastoj po določenem času. Čeprav zastoj ni nujno velika težava, je lahko nadloga za uporabnike, zlasti tiste, ki so izbrani kot žrtev zastoja, in kaže na eno ali več napak pri programiranju strežniške baze podatkov.

Način, kako strežnik izbere žrtev mrtve točke, se lahko razlikuje. Nekateri programi izberejo žrtev povsem naključno. Čeprav je to lahko dokaj učinkovito, saj vsaka izbira vodi do rešitve in konca zastoja, to ni vedno idealna metoda. Strežnik je običajno programiran tako, da oceni dva uporabnika, da izbere tistega, ki bi se lahko najlažje znova povezal ali ki bo zaradi prekinitve povezave izgubil najmanj podatkov.