¿Qué es una víctima de un punto muerto?

Una víctima de interbloqueo es un usuario de computadora, que actúa como un cliente conectado a un servidor, cuya conexión el host del servidor ha decidido terminar para resolver un interbloqueo. Este tipo de interbloqueo a menudo surge cuando dos procesos diferentes intentan utilizar los mismos recursos, lo que hace que ambos procesos se bloqueen. Para resolver este problema, muchos sistemas de bases de datos de servidor pueden detectar cuándo ocurre un interbloqueo y luego optar por terminar la conexión de uno de los dos procesos. El programa puede elegir arbitrariamente a una víctima de interbloqueo, aunque normalmente se elige al usuario como el que puede reconectarse más fácilmente al sistema.

El término «víctima de interbloqueo» se utiliza normalmente en el mensaje de error o excepción que muestra el sistema al usuario cuando se interrumpe su conexión. Este error se produce en una situación comúnmente conocida como interbloqueo. En general, un interbloqueo ocurre cuando dos usuarios conectados a un servidor intentan acceder a los mismos recursos de una manera que crea un bloqueo en el sistema. Por ejemplo, si el usuario A está usando el recurso 1 y necesita usar también el recurso 2, mientras que el usuario B está usando el recurso 2 y también necesita usar el recurso 1, se produce un punto muerto ya que ninguno de los usuarios puede finalizar su proceso.

En este ejemplo, el sistema elegiría a uno de los dos usuarios como víctima del interbloqueo y su conexión con el servidor se interrumpiría. Una vez que esto ocurre, el otro usuario puede finalizar su proceso, terminando el interbloqueo y la víctima del interbloqueo puede volver a conectarse al servidor. La mayoría de los programas de bases de datos del servidor están diseñados con detección de interbloqueo, que normalmente detecta un interbloqueo después de un cierto período de tiempo. Aunque un interbloqueo no es necesariamente un problema importante, puede ser una molestia para los usuarios, especialmente para aquellos elegidos como la víctima del interbloqueo, e indica uno o más errores en la programación de la base de datos del servidor.

La forma en que un servidor elige una víctima de interbloqueo puede variar. Algunos programas eligen a la víctima de forma puramente aleatoria. Si bien esto puede ser bastante efectivo, dado que cualquier elección conduce a una solución y al final del punto muerto, este no siempre es un método ideal. Por lo general, un servidor está programado para evaluar a los dos usuarios y elegir al que podría reconectarse más fácilmente o al que perderá la menor cantidad de datos debido a la desconexión.