Considere el siguiente Anexo S parcial que involucra dos transacciones T1 y T2. Solo se han mostrado las operaciones de lectura y escritura. La operación de lectura en el elemento de datos P se denota por read(P) y la operación de escritura en el elemento de datos P se denota por write(P).
Suponga que la transacción T1 falla inmediatamente después de la instancia de tiempo 9. ¿Cuál de las siguientes afirmaciones es correcta?
(A) T2 debe cancelarse y luego T1 y T2 deben reiniciarse para garantizar la atomicidad de la transacción
(B) El programa S no es recuperable y no puede garantizar la atomicidad de la transacción
(C) Solo T2 debe cancelarse y luego reiniciarse para garantizar la atomicidad de la transacción
(D) El Anexo S es recuperable y puede garantizar la atomicidad y no es necesario hacer nada más
Respuesta: (B)
Explicación:
si la transacción falla, la atomicidad requiere que se deshaga el efecto de la transacción. La durabilidad establece que una vez que se confirma la transacción, su cambio no se puede deshacer (sin ejecutar otra transacción de compensación).
Horario recuperable: Un horario exactamente donde, para cada conjunto de transacciones Ti y Tj. Si Tj lee elementos de datos previamente escritos por Ti, entonces la operación de confirmación de Ti precede a la operación de confirmación de Tj.
Abortar implica deshacer las operaciones y rehacerlas ya que por la marca de tiempo se aborta.
Opción (A) : T2 debe cancelarse y luego tanto T1 como T2 deben reiniciarse para garantizar la atomicidad de la transacción. Es incorrecto porque dice abortar la transacción T2 y luego rehacer todas las operaciones. Pero no hay garantía de que tenga éxito esta vez, ya que nuevamente T1 puede fallar.
Opción (B) : el Anexo S no es recuperable y no puede garantizar la atomicidad de la transacción. Correcto, es por definición un cronograma irrecuperable, así que ahora incluso si comenzamos a deshacer las acciones una por una (después de que t1 falla) para garantizar la atomicidad de la transacción. Todavía no podemos deshacer una transacción comprometida. por lo tanto, este programa es irrecuperable por definición y tampoco atómico, ya que deja la base de datos en un estado inconsistente. Simplemente lectura sucia tan irrecuperable.
Opción (C) : solo se debe abortar T2 y luego reiniciar para garantizar la atomicidad de la transacción. Es incorrecto porque dice abortar solo la transacción T2 y luego rehacer todas las operaciones T2. Pero este es un problema de lectura sucia, ya que está leyendo el elemento de datos A que está escrito por T1 y T1 no está comprometido. Nuevamente será el problema de lectura sucia. tan incorrecto
Opción (D) : el Anexo S es recuperable y puede garantizar la atomicidad de la transacción y no es necesario hacer nada más. Incorrecto, está diciendo claramente que el cronograma s es recuperable pero es irrecuperable porque T2 leyó el elemento de datos A que está escrito por T1 y T1 falló y retrocedió, en la reversión T1 comenzó a deshacer todas las operaciones y modificó el valor de A con el valor anterior pero T2 ya está comprometido, por lo que T2 no puede cambiar el valor de lectura de A que se tomó anteriormente de T1.
Esta solución es aportada por .
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