sql >> Base de Datos >  >> RDS >> Oracle

¿Podría haber un interbloqueo al usar el bloqueo optimista?

Me temo que tiene que ser muy preciso en su definición de control de concurrencia optimista. En la definición clásica de Bernstein, Goodman y Hadzilacos, el control de concurrencia optimista permite que los subprocesos adquieran "virtualmente" los bloqueos, continúen con las actualizaciones y luego verifiquen la violación de la consistencia cuando la transacción intenta comprometerse. Si se produce una violación de la coherencia, se fuerza la cancelación de la transacción y se vuelve a enviar. Bajo esta definición, no está claro cómo puede ocurrir un interbloqueo, ya que los subprocesos "nunca" se bloquean esperando un bloqueo. La definición clásica de control de concurrencia optimista no es fácil de implementar en la práctica. Sin embargo, el trabajo reciente sobre la memoria transaccional de hardware está abriendo algunas posibilidades y arrojando algo de perspectiva sobre este viejo problema.