PUERTA | PUERTA-CS-2006 | Pregunta 85 – Part 3

Considere la siguiente secuencia de registro de dos transacciones en una cuenta bancaria, con un saldo inicial de 12000, que transfieren 2000 a un pago de hipoteca y luego aplican un interés del 5%.

  1. T1 start
  2. T1 B old=12000 new=10000
  3. T1 M old=0 new=2000
  4. T1 commit
  5. T2 start
  6. T2 B old=10000 new=10500
  7. T2 commit 

Suponga que el sistema de la base de datos falla justo antes de que se escriba el registro de registro 7. Cuando se reinicia el sistema, ¿cuál afirmación es verdadera sobre el procedimiento de recuperación?
(A) Debemos rehacer el registro 6 para establecer B en 10500
(B) Debemos deshacer el registro 6 para establecer B en 10000 y luego rehacer los registros 2 y 3.
(C) No necesitamos rehacer los registros 2 y 3 porque la transacción T1 se ha comprometido.
(D) Podemos aplicar operaciones de rehacer y deshacer en orden arbitrario porque son idempotentes

Respuesta: (B)
Explicación: debemos deshacer el registro de registro 6 para establecer B en 10000 y luego rehacer los registros de registro 2 y 3 porque el sistema falla antes de la operación de confirmación. Entonces necesitamos deshacer las transacciones activas (T2) y rehacer las transacciones comprometidas (T1)

Nota: Aquí no estamos usando puntos de control.

Punto de control: El punto de control es un mecanismo donde todos los registros anteriores se eliminan del sistema y se almacenan permanentemente en un disco de almacenamiento. Checkpoint declara un punto antes del cual el DBMS estaba en un estado consistente y todas las transacciones se confirmaron.

Recuperación:
cuando un sistema con transacciones simultáneas falla y se recupera, se comporta de la siguiente manera:

=>El sistema de recuperación lee los registros hacia atrás desde el final hasta el último punto de control.

=>Mantiene dos listas, una lista de deshacer y una lista de rehacer.

=>Si el sistema de recuperación ve un registro conyo solo, coloca la transacción en la lista de rehacer.

=>Si el sistema de recuperación ve un registro conpero no se encontró ningún registro de confirmación o cancelación, coloca la transacción en la lista de deshacer.

A continuación, se deshacen todas las transacciones de la lista de deshacer y se eliminan sus registros. Todas las transacciones en la lista de rehacer y sus registros anteriores se eliminan y luego se rehacen antes de guardar sus registros.

Entonces, la respuesta es B rehace los registros 2 y 3 y deshace el registro 6
Cuestionario de esta pregunta

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *