Diferencia entre bloqueo compartido y bloqueo exclusivo

Uno de los métodos para garantizar la propiedad de aislamiento en la transacción es exigir que se acceda a los elementos de datos de una manera mutuamente excluyente. Eso significa que, mientras una transacción accede a un elemento de datos, ninguna otra transacción puede modificar ese elemento de datos. Por lo tanto, el método más común utilizado para implementar el requisito es permitir que una transacción acceda a un elemento de datos solo si actualmente tiene un bloqueo en ese elemento .

Por lo tanto, se requiere la operación de bloqueo para asegurar el aislamiento de la transacción.

1. Bloqueo compartido (S) :

  • El bloqueo compartido también se denomina bloqueo de lectura y se usa solo para leer elementos de datos.
  • Los bloqueos compartidos admiten integridad de lectura. Garantizan que un registro no esté en proceso de actualización durante una solicitud de solo lectura.
  • Los bloqueos compartidos también se pueden usar para evitar cualquier tipo de actualización de registros.
  • Se denota por Lock-S.
  • Se solicita el bloqueo S mediante la instrucción Lock-S.

Por ejemplo , considere un caso en el que inicialmente A = 100 y hay dos transacciones que están leyendo A. Si una de las transacciones quiere actualizar A, en ese caso, la otra transacción estaría leyendo un valor incorrecto. Sin embargo, el bloqueo compartido evita que se actualice hasta que haya terminado de leer.

2. Bloqueo exclusivo (X):

  • Con el bloqueo exclusivo, un elemento de datos se puede leer y escribir. También llamado bloqueo de escritura.
  • Un bloqueo exclusivo evita que cualquier otro casillero obtenga algún tipo de bloqueo en el objeto.
  • Solo pueden ser propiedad de una transacción a la vez.
  • Se denota como Lock-X.
  • Se solicita el bloqueo X mediante la instrucción Lock-X.

Por ejemplo , considere un caso en el que inicialmente A = 100 cuando una transacción necesita deducir 50 de A. Podemos permitir esta transacción colocando un bloqueo X en ella. Por lo tanto, cuando cualquier otra transacción quiere leer o escribir, el bloqueo exclusivo lo impide.

Array de compatibilidad de bloqueo:

Array de compatibilidad para cerraduras

  • Si la transacción T1 tiene un bloqueo compartido en el elemento de datos A, entonces el administrador de control puede otorgar el bloqueo compartido a la transacción T2 ya que la compatibilidad es VERDADERA, pero no puede otorgar el bloqueo exclusivo ya que la compatibilidad es FALSA.
  • En palabras simples, si la transacción T1 está leyendo un elemento de datos A, entonces el mismo elemento de datos A puede ser leído por otra transacción T2 pero no puede ser escrito por otra transacción.
  • De manera similar, si se mantiene un bloqueo exclusivo (es decir, bloqueo para operaciones de lectura y escritura) en el elemento de datos en alguna transacción, entonces ninguna otra transacción puede adquirir un bloqueo compartido o exclusivo, ya que la función de compatibilidad indica FALSO.

Diferencia entre bloqueo compartido y bloqueo exclusivo:

S. No. Bloqueo compartido Bloqueo exclusivo
1. El modo de bloqueo es una operación de solo lectura. El modo de bloqueo es una operación de lectura y escritura.
2. El bloqueo compartido se puede colocar en objetos que no tienen un bloqueo exclusivo ya colocado. El bloqueo exclusivo solo se puede colocar en objetos que no tienen ningún otro tipo de bloqueo.
3. Evita que otros actualicen los datos. Evita que otros lean o actualicen los datos.
4. Emitido cuando la transacción quiere leer un elemento que no tiene un bloqueo exclusivo. Emitido cuando la transacción quiere actualizar el artículo desbloqueado.
5. Cualquier número de transacciones puede mantener un bloqueo compartido en un artículo. El bloqueo exclusivo se puede mantener en una sola transacción.
6. Se solicita el bloqueo S mediante la instrucción lock-S. Se solicita el bloqueo X mediante la instrucción lock-X.

Publicación traducida automáticamente

Artículo escrito por ameeshapurswani y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *