Considere el siguiente programa S de transacciones T1, T2, T3, T4:
¿Cuál de las siguientes afirmaciones es CORRECTA?
(A) S es serializable en conflicto pero no recuperable
(B) S no es serializable en conflicto pero es recuperable
(C) S es serializable en conflicto y recuperable
(D) S no es serializable en conflicto ni recuperable
Respuesta: ( C)
Explicación: Para verificar si hay conflicto serializable, necesitamos hacer un gráfico de precedencia, si el gráfico contiene un ciclo, entonces no es conflicto serializable, de lo contrario lo es.
Aquí, para el gráfico de precedencia, solo habrá dos bordes dirigidos, uno desde T2 -> T3 (Conflicto de lectura-escritura) y otro desde T2 -> T1 (Conflicto de lectura-escritura), por lo tanto, no hay ciclo, por lo que la programación es un conflicto. serializable.
Ahora, para verificar Recuperable, debemos verificar si hay una operación de lectura sucia (Escribir por Transacción Ti, seguido de Leer por Transacción Tj pero antes de que Ti se comprometa) entre cualquier par de operaciones. Si no hay una programación recuperable de lectura sucia, si hay una lectura sucia, entonces debemos verificar las operaciones de confirmación.
Aquí no hay operación de lectura sucia (ya que T3 y T1 se confirman antes de que T4 lea Write(X) de T3 y T1, y T2 se confirma antes de que T4 lea Write(Y) de T2). Por lo tanto el horario es recuperable.
Por lo tanto, Opción C.
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