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

May 26, 2022 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

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

Description

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 blo-queo final (el final de la fase de crecimiento) se deno-mina 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 los que puede pasar una transacción. Explíquese por qué puede ocurrir cada una 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".

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ás importante cuando los datos se deben extraer de disco (lento) o cuando las transacciones duran mucho, y es menos importante cuando hay pocos datos en memoria 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 desbloqueo para que sigan el protocolo de dos fases. ¿Pueden producir la ejecución de estas transacciones un interbloqueo?

Instrucciones de bloqueo y desbloqueo: 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? 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 bloqueo estricto de dos fases. Indíquese tres razones que expliquen la popularidad de este protocolo. 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 borra una 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 mayor marca temporal de todas las transacciones que hayan ejecutado escribir(Q) con éxito. Supóngase que en lugar de ello, marca_temporal-E(Q) se define como la marca 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 bloqueo implí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. 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 se encuentra la base de datos y que, tal y como debe ocurrir, no es el mismo disco donde se almacena el diario. El diario contiene la secuencia descrita a continuación. Indicar el procedimiento de recuperación y los valores finales para los gránulos implicados.

15.En una base de datos en la que se parte de los siguientes valores para tres gránulos de datos: A=25, B=5, D=10, y los registros del diario que se acompañan. Se pide: a) Describir el proceso de recuperación indicando qué transacciones deben rehacerse y cuáles deshacerse, así como los retrocesos en cascada que se puedan 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 existen copias de seguridad de la base de datos y de los diarios realizada el día anterior.

Diario:

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF