12
Guía de Ejercicios Transacciones, Control de Concurrencia, Recuperación 1. Demuestre que el protocolo de bloqueo de dos fases asegura la secuencialidad en cuanto a conflictos y que se pueden secuenciar las transacciones a través de sus puntos de bloqueos. Considérese cualquier transacción. El punto de la planificación en el cual la transacción obtiene su bloqueo final (el final de la fase de crecimiento) se denomina punto de bloqueo de la transacción. Ahora se pueden ordenar las transacciones en base a sus puntos de bloqueo; (diciendo, esta ordenación es un orden de secuencialidad para las transacciones. El protocolo de bloqueo de dos fases no asegura la ausencia de interbloqueos. 2. Los implementadores de sistemas de bases de datos prestan mucha más atención a las propiedades ACID que los implementadores de sistemas de archivos. ¿Por qué tiene sentido esto? Las bases de datos generalmente realizan tareas cruciales, cuyos efectos necesitan ser atomicos, duraderos y cuyos resultados afectan al mundo real de forma permanente. Ejemplos de tales tareas son las transacciondes menetarias, reservas de plazas, etc. Por lo tanto, han de asegurarse las propuedades ACID. En constraste, la mayoria de los usuarios de los sistemas de ficheros no estarian dispuestos a pagar el precio (en recursos, espacio en disco, tiempo) de soportar las propiedades ACID. 3. Durante su ejecución, una transacción pasa a través de varios estados hasta que se compromete o aborta. Lístense todas las secuencias posibles de estados por

Guía de Ejercicios - Transacciones, Control de Concurrencia, Recuperación

Embed Size (px)

DESCRIPTION

Una interpretación del bloqueo de dos fases, como simplemente el bloqueo de las tuplas accedidas en una relación, es incorrecta. Hay también un índice o un dato de relación que tiene información sobre las tuplas en la relación. Esta información es leída por cualquier transacción que rastrea la relación y modificada por transacciones que actualizan, insertan o borran en o desde relación. Por lo tanto, el bloqueo también debe realizarse sobre el índice o el dato de relación, evitando el fenómeno fantasma.

Citation preview

Page 1: Guía de Ejercicios - Transacciones, Control de Concurrencia, Recuperación

Guía de EjerciciosTransacciones, Control de Concurrencia, Recuperación

1. Demuestre que el protocolo de bloqueo de dos fases asegura la secuencialidaden cuanto a conflictos y que se pueden secuenciar las transacciones a través desus puntos de bloqueos.

Considérese cualquier transacción. El punto de la planificación en el cual la transacción obtiene su bloqueo final (el final de la fase de crecimiento) se denomina punto de bloqueo de la transacción. Ahora se pueden ordenar las transacciones en base a sus puntos de bloqueo; (diciendo, esta ordenación es un orden de secuencialidad para las transacciones.

El protocolo de bloqueo de dos fases no asegura la ausencia de interbloqueos.

2. Los implementadores de sistemas de bases de datos prestan mucha másatención a las propiedades ACID que los implementadores de sistemas dearchivos. ¿Por qué tiene sentido esto?

Las bases de datos generalmente realizan tareas cruciales, cuyos efectos necesitan ser atomicos, duraderos y cuyos resultados afectan al mundo real de forma permanente. Ejemplos de tales tareas son las transacciondes menetarias, reservas de plazas, etc. Por lo tanto, han de asegurarse las propuedades ACID. En constraste, la mayoria de los usuarios de los sistemas de ficheros no estarian dispuestos a pagar el precio (en recursos, espacio en disco, tiempo) de soportar las propiedades ACID.

3. Durante su ejecución, una transacción pasa a través de varios estados hasta quese compromete o aborta. Lístense todas las secuencias posibles de estados porlos que puede pasar una transacción. Explíquese por qué puede ocurrir cadauna de las transiciones de estados.

Las secuencias de estados posibles son:

a) Activa parcialmente comprometida. Esta es la secuencia normal que segura una transaccion con exito. Despues de ejecutar todas sus instrucciones accede al estado parcialmente comprometida. Despues de que se ha grabado en disco suficiente informacion de recuperacion, la transaccion finalmente accede al estado comprometida.

b) Activa parcialmente comprometida abotada. Despues de ejecutar la ultima instruccion de la transaccion, accede al estado parcialmente comprimetida. Pero antes de grabar en disco suficiente informacion de recuperacion, puede tener lugar un fallo en el hardware destruyendo el contenido de la memoria. En ese caso, los cambios realizados en la base de datos se deshacen y la transaccion accede al estado "abortada".

Page 2: Guía de Ejercicios - Transacciones, Control de Concurrencia, Recuperación

c) activa fallida abortada. Despues de iniciarse la transaccion, si se descubre en algun momento que no puede continuar la ejecucion normal (debido a errores de programacion o a errores externos), entra en el estado fallido. entonces la transaccion es retrocedida, despues de lo cual entra en el estado "abortada".

4. Justifíquese lo siguiente. La ejecución concurrente de transacciones es másimportante cuando los datos se deben extraer de disco (lento) o cuando lastransacciones duran mucho, y es menos importante cuando hay pocos datos enmemoria y las transacciones son muy cortas.

Si una transacción dura mucho o extrae datos desde undisco lento, lleva mucho tiempo completarla. En ausencia de concurrencia, otras transacciones tendránque esperar por un largo período detiempo. El tiempo de respuesta medió se incrementará.

También,cuando la transacción está leyendo datos deldisco, la CPU pierde el tiempo.

Así, los recursos no se empleancorrectamente. Por lo tanto, la ejecuciónconcurrente se hace importante en este caso. Sin embargo, cuando lastransacciones son cortas o los datosestán disponibles en memoria, estos problemas no suceden.

5. Considere las dos transacciones siguientes:

Agregue a las transacciones T31 y T32 las instrucciones de bloqueo y desbloqueopara que sigan el protocolo de dos fases. ¿Pueden producir la ejecución de estastransacciones un interbloqueo?

Instrucciones de bloqueo y desbloqueo:

Page 3: Guía de Ejercicios - Transacciones, Control de Concurrencia, Recuperación

T31: bloquear-S(A) leer(A) bloquear-X(B) leer(B) si A = 0 entonces B := B + 1 escribir(B) desbloquear(A) desbloquear(B)

T32: bloquear-S(B) leer(B) bloquear-X(A) leer(A) si B = 0 entonces A := A + 1 escribir(A) desbloquear(B) desbloquear(A)

La ejecución de estas transacciones puede dar lugar a interbloqueos. Por ejemplo, considérese la siguiente planificación parcial:

6. ¿Qué beneficios proporciona el bloqueo estricto de dos fases? ¿Qué inconvenientes tiene?

Page 4: Guía de Ejercicios - Transacciones, Control de Concurrencia, Recuperación

Dado que sólo produce planificaciones sin cascada, la recuperación es muy fácil. Pero el conjunto de planificaciones que se puede obtener es un subconjunto de los que se obtiene desde el bloqueo sencillo de dos fases, con lo que se reduce la concurrencia.

7. ¿Qué beneficio proporciona el bloqueo riguroso de dos fases? compárese con otras formas de bloqueo de dos fases.

El bloqueo riguroso de dos fase tiene las ventajas del bloqueo estricto de dos fases. Además tiene las propiedades de que para dos transacciones conflictivas, su orden de compromiso es su orden de secuencialidad. En algunos sistemas lo usuarios pueden esperar este comportamiento.

8. Muchas implementaciones de sistemas de bases de datos utilizan el bloqueoestricto de dos fases. Indíquese tres razones que expliquen la popularidad de esteprotocolo.

a) Asegura la secuencialidad

b) Evita retrocesos en cascada.c) Es relativamente sencillo de implementar.

9. Explíquese el fenómeno fantasma. ¿Por qué produce este fenómeno?

El fenómeno fantasma surge cuando, debido a una inserción o borrado, dos transacciones entran en conflicto lógico a pesar de no bloquearse ninguno de los elementos de los datos en común.

El borrado también puede conducir a este fenómeno. Supóngase que Ti borrauna tupla de una relación mientras Tj rastrea la relación. Si Ti borra la tupla y después Tj lee la relación, Ti debería secuencializarse antes que Tj . Aún no hay ninguna tupla sobre la que Ti y Tj estén en conflicto.

Una interpretación del bloqueo de dos fases, como simplemente el bloqueo de las tuplas accedidas en una relación, es incorrecta. Hay también un índice o un dato de relación que tiene información sobre las tuplas en la relación. Esta información es leída por cualquier transacción que rastrea la relación y modificada por transacciones que actualizan, insertan o borran en o desde relación. Por lo tanto, el bloqueo también debe realizarse sobre el índice o el dato de relación, evitando el fenómeno fantasma.

10.En la ordenación por marcas temporales, marca_temporal-E(Q) indica la mayormarca temporal de todas las transacciones que hayan ejecutado escribir(Q) con

Page 5: Guía de Ejercicios - Transacciones, Control de Concurrencia, Recuperación

éxito. Supóngase que en lugar de ello, marca_temporal-E(Q) se define como lamarca temporal de la transacción más reciente que haya ejecutado escribir(Q) con éxito. ¿Hay alguna diferencia al cambiar esta definición? Razóne su respuesta.

No habría ninguna diferencia. El protocolo de escritura es tal que la última transacción para escribir un elemento es, también, la que se ha hecho con mayor marca temporal.

11.Cuando se retrocede una transacción en el protocolo de ordenación por marcas temporales se le asigna una nueva marca temporal. ¿Por qué no puede conservar simplemente su antigua marca temporal?

Una transacción es retrocedida porque una transacción más nueva ha leído o escrito el dato que, se supone, iba a escribir. Si la transacción retrocedida se reintrodujera con igual marca temporal, la misma razón para el retroceso sería todavía válida y la transacción habría de retrocederse de nuevo. Esto continuaría indefinidamente.

12.En el protocolo de granularidad múltiple, ¿qué diferencia hay entre bloqueoimplícito y explícito?

Cuando una transacción bloquea explícitamente un nodo en modo exclusivo o compartido,bloquea implícitamente, en el mismo modo, a todos los descendientes de ese nodo. La transacción no tiene necesidad de bloquear explícitamente los nodos descendientes. No hay diferencia en las funcionalidades de estos bloqueos, la única diferencia está en la forma en que se adquieren y en lo probado de su presencia.

13.Considere el grafo de la siguiente figura.

¿Es secuenciable en cuanto a conflictos la planificación correspondiente? Razone su respuesta.

Page 6: Guía de Ejercicios - Transacciones, Control de Concurrencia, Recuperación

Hay una planificación secuenciable correspondiente al grafo de precedencia siguiente, dado que el grafo es acíclico. Una posible planificación se obtiene haciendo una ordenación topológica, es decir, T1, T2,T3, T4, T5.

14.En una instalación existe una copia de seguridad del día 23 de abril a las 21 horas.Durante el día 24 abril ocurre un incidente que implica la rotura del disco donde seencuentra la base de datos y que, tal y como debe ocurrir, no es el mismo discodonde se almacena el diario. El diario contiene la secuencia descrita acontinuación. Indicar el procedimiento de recuperación y los valores finales paralos gránulos implicados.

Page 7: Guía de Ejercicios - Transacciones, Control de Concurrencia, Recuperación

15.En una base de datos en la que se parte de los siguientes valores para tresgránulos de datos: A=25, B=5, D=10, y los registros del diario que seacompañan. Se pide:a) Describir el proceso de recuperación indicando qué transacciones debenrehacerse y cuáles deshacerse, así como los retrocesos en cascada que sepuedan producir. Indicar también con que valor quedarían A, B y C.b) Describir el proceso de recuperación si se pierde la BD, sabiendo que existencopias de seguridad de la base de datos y de los diarios realizada el díaanterior.

Page 8: Guía de Ejercicios - Transacciones, Control de Concurrencia, Recuperación

Diario:

Page 9: Guía de Ejercicios - Transacciones, Control de Concurrencia, Recuperación