Was ist ein Deadlock-Opfer?
Ein Deadlock-Opfer ist ein Computerbenutzer, der als mit einem Server verbundener Client fungiert und dessen Verbindung der Serverhost beendet hat, um einen Deadlock zu beheben. Diese Art von Deadlock tritt häufig auf, wenn zwei verschiedene Prozesse versuchen, die gleichen Ressourcen zu nutzen, wodurch beide Prozesse abstürzen. Um dieses Problem zu beheben, können viele Server-Datenbanksysteme feststellen, wann ein Deadlock auftritt, und anschließend die Verbindung eines der beiden Prozesse beenden. Ein Deadlock-Opfer kann vom Programm willkürlich ausgewählt werden, obwohl der Benutzer in der Regel derjenige ist, der sich am einfachsten wieder mit dem System verbinden kann.
Der Begriff "Deadlock-Opfer" wird normalerweise in der Fehler- oder Ausnahmemeldung verwendet, die das System dem Benutzer anzeigt, wenn seine Verbindung beendet wird. Dieser Fehler tritt in einer Situation auf, die allgemein als Deadlock bezeichnet wird. Im Allgemeinen tritt ein Deadlock auf, wenn zwei mit einem Server verbundene Benutzer versuchen, auf die gleichen Ressourcen zuzugreifen, sodass das System gesperrt wird. Wenn beispielsweise Benutzer A Ressource 1 verwendet und auch Ressource 2 verwenden muss, während Benutzer B Ressource 2 verwendet und auch Ressource 1 verwenden muss, tritt ein Deadlock auf, da keiner der Benutzer seinen Prozess beenden kann.
In diesem Beispiel würde einer der beiden Benutzer vom System als Deadlock-Opfer ausgewählt und seine Verbindung zum Server beendet. Sobald dies eintritt, kann der andere Benutzer seinen Prozess beenden und den Deadlock beenden, und das Deadlock-Opfer kann erneut eine Verbindung zum Server herstellen. Die meisten Server-Datenbankprogramme sind mit einer Deadlock-Erkennung ausgestattet, die in der Regel nach einer bestimmten Zeit einen Deadlock erkennt. Auch wenn ein Deadlock nicht unbedingt ein großes Problem darstellt, kann er für Benutzer, insbesondere diejenigen, die als Deadlock-Opfer ausgewählt wurden, lästig sein und auf einen oder mehrere Fehler bei der Programmierung der Serverdatenbanken hinweisen.
Die Art und Weise, wie ein Server ein Deadlock-Opfer auswählt, kann variieren. Einige Programme wählen das Opfer rein zufällig aus. Dies kann zwar ziemlich effektiv sein, da jede Wahl zu einer Lösung und dem Ende des Deadlocks führt, ist dies jedoch nicht immer eine ideale Methode. Ein Server ist in der Regel so programmiert, dass er die beiden Benutzer dahingehend auswertet, ob sie sich am einfachsten wieder verbinden oder die geringste Datenmenge aufgrund von Verbindungsabbrüchen verlieren.