Hva er et dødsofferoffer?
Et dødofferoffer er en datamaskinbruker, som fungerer som en klient koblet til en server, hvis tilkobling serververten har valgt å avslutte for å løse en deadlock. Denne typen deadlock oppstår ofte når to forskjellige prosesser prøver å utnytte de samme ressursene, noe som får begge prosessene til å låse seg opp. For å løse dette problemet, kan mange serverdatabasesystemer oppdage når en deadlock oppstår og deretter velge å avslutte tilkoblingen til en av de to prosessene. Et dødelig offer kan velges vilkårlig av programmet, selv om brukeren vanligvis velges som den som lettest kan koble seg til systemet igjen.
Begrepet "deadlockoffer" brukes vanligvis i feil- eller unntaksmeldingen som vises av systemet til brukeren når forbindelsen hans avsluttes. Denne feilen oppstår i en situasjon som ofte blir referert til som en dødvakt. Generelt oppstår en deadlock når to brukere som er koblet til en server, prøver å få tilgang til de samme ressursene på en måte som skaper en lås på systemet. Hvis for eksempel bruker A bruker ressurs 1 og også trenger å bruke ressurs 2, mens bruker B bruker ressurs 2 og også trenger å bruke ressurs 1, oppstår det en deadlock siden ingen av brukerne kan fullføre prosessen sin.
I dette eksemplet vil en av de to brukerne bli valgt av systemet som dødløsoffer, og hans eller hennes forbindelse til serveren vil bli avsluttet. Når dette skjer, kan den andre brukeren fullføre prosessen sin, og avslutte dødløsningen, og dødsfallofferet kan koble seg til serveren på nytt. De fleste serverdatabaseprogrammer er designet med deadlock-deteksjon, som vanligvis oppdager en deadlock etter en viss tid. Selv om en deadlock ikke nødvendigvis er et stort problem, kan det være en plage for brukerne, spesielt de som er valgt som deadlock-offeret, og indikerer en eller flere feil i serverdatabaseprogrammering.
Måten en server velger et deadlock-offer på kan variere. Noen programmer velger offeret på rent tilfeldig basis. Selv om dette kan være ganske effektivt, siden ethvert valg fører til en løsning og slutten på dødvollen, er dette ikke alltid en ideell metode. En server er vanligvis programmert til å evaluere de to brukerne for å velge den som lettest kan koble seg til igjen eller som vil miste minst mulig data på grunn av frakobling.