Post on 14-Jul-2015
CLASE 8
ADMINISTRACIÓN DE BASE DE DATOS
PLANIFICACIÓN
AUTORES:
Prof. Roxydel Dulcey
Prof. Josué Ramírez
Marzo, 2011
Planificación de Transacciones
� Es el orden de ejecución de las transacciones cuando éstas se ejecutan de una forma intercalada.
� Un Plan P de n transacciones: T1, T2,…,Tn
es un ordenamiento para las operaciones,
en donde para cada Ti, las operaciones de
Ti en P deben aparecer en el mismo orden
en que ocurren en Ti.
Planificación de Transacciones
Plan de la ejecución anterior
P1:r1(X);r2(X);w1(X);r1(Y);w2(X);w1(Y);
Planificación de Transacciones
Seriabilidad
• Planes en Serie: las operaciones de cada
transacción se ejecutan de manera consecutiva,
sin intercalación.
• Los planes en serie limitan la concurrencia, por
ejemplo si una transacción está esperando que se
complete una operación de E/S, no se puede
conmutar el procesador a otra transacción,
desperdiciando la CPU.
Planificación de Transacciones
Seriabilidad
El concepto de seriabilidad de planificaciones es usado para identificar cuáles planificaciones son correctas cuando ejecutan transacciones en forma intercalada
Planificación de Transacciones
Planes recuperables
Antes se han estudiado las planificaciones que son aceptables desde el punto de vista de la consistencia de la base de datos asumiendo implícitamente que no había fallos en las transacciones. Ahora se va a estudiar el efecto de los fallos en una transacción durante una ejecución concurrente.
Planificación de Transacciones
Recuperabilidad
• Si la transacción Ti falla, por la razón que sea, es necesario deshacer el efecto de dicha transacción para asegurar la propiedad de atomicidad de la misma.
• En un sistema que permita la concurrencia es necesario asegurar también que toda transacción Tjque dependa de Ti (es decir, Tj lee datos que ha escrito Ti) se aborta también.
• Para alcanzar esta garantía, es necesario poner restricciones al tipo de planificaciones permitidas en el sistema.
Planificación de Transacciones
Recuperabilidad
• Las planificaciones que garantizan la recuperabilidad son:
�Planificaciones recuperables
�Planificaciones sin cascada
Planificación de Transacciones
Planificaciones recuperables
• Considérese la siguiente planificación:
Planificación 5
•Supóngase que el sistema permite que T9 se complete inmediatamente después de ejecutar la instrucción leer(A). Así se completa T9 antes de que lo haga T8.
•Supóngase ahora que T8 falla antes de completarse. Puesto que T9 ha leído el valor del elemento de datos A escrito por T8, se debe abortar T9 para asegurar la atomicidad de la transacción.••Sin embargo, T9 ya se ha comprometido y no puede abortarse. De este modo se llega a una situación en la cual es imposible recuperarse correctamente del fallo de T8.
Planificación de Transacciones
Planificaciones recuperables
•La planificación 5 anterior, cuyo compromiso (commit) tiene lugar inmediatamente después de ejecutar la instrucción leer(A), es un ejemplo de planificación no recuperable, la cual no debe permitirse.
•La mayoría de los sistemas de bases de datos requieren que todas las planificaciones sean recuperables.
•Una planificación recuperable es aquella en la que para todo par de transacciones Ti y Tj tales que Tj lee elementos de datos que ha escrito previamente Ti, la operación comprometer de Ti aparece antes que la de Tj.
Planificación de Transacciones
Planificaciones sin cascada
•Incluso si una planificación es recuperable, hay que retroceder varias transacciones para recuperar correctamente el estado previo a un fallo en una transacción Ti.
•Tales situaciones ocurren si las transacciones leen datos que ha escrito Ti
Planificación de Transacciones
Planificaciones sin cascada
•Considere la siguiente planificación parcial:
•La transacción T10 escribe un valor de A que lee la transacción T11.
•La transacción T11 escribe un valor de A que lee la transacción T12.
•Supóngase que en ese momento falla T10. Se debe retroceder T10. Puesto que T11 depende de T10, se debe Retroceder T11. Puesto que T12 depende de T11, se debe Retroceder T12.
Planificacion 6
Planificación de Transacciones
Planificaciones sin cascada
•Este fenómeno en el cual un fallo en una única transacción provoca una serie de retrocesos de la transacción se denomina retroceso en cascada.
•No es deseable el retroceso en cascada, ya que provocaun aumento significativo del trabajo necesario paradeshacer cálculos.
•Es deseable restringir las planificaciones a aquellas en las que no puedan ocurrir retrocesos en cascada. Tales planificaciones se denominan planificaciones sin cascada.
Planificación de Transacciones
Planificaciones sin cascada
•Una planificación sin cascada es aquella para la que todo par de transacciones Ti y Tj tales que Tj lee un elemento de datos que ha escrito previamente Ti, la operación comprometer de Ti aparece antes que la operación de lectura de Tj.
•Por tanto se puede afirmar que toda planificación sin cascada es también recuperable.
Planificación de Transacciones
Comprobación de la secuencialidad
•En los esquemas de control de concurrencia se debe asegurar que las planificaciones que se generan son secuenciables.
•Para hacer esto se debe entender primero la forma de determinar si, dada una planificación concreta P, es secuenciable.
•Ahora se presenta un método simple y eficiente dedeterminar la secuencialidad en cuanto a conflictos deuna planificación..
Planificación de Transacciones
Comprobación de la secuencialidad
•Considérese una planificación P. Se construye un grafo dirigido, llamado grafo de precedencia para P.
•Este grafo consiste en un par G = (V,A), siendo V un conjunto de vértices y A un conjunto de arcos.
•El conjunto de vértices consiste en todas las transacciones que participan en la planificación.
Planificación de Transacciones
Comprobación de la secuencialidad
El conjunto de arcos consiste en todos los arcos Ti→Tj para los cuales se dan una de las tres condiciones siguientes:
1. Ti ejecuta escribir(Q) antes de que Tj ejecute leer(Q).
2. Ti ejecuta leer(Q) antes de que Tj ejecute escribir(Q).
3. Ti ejecuta escribir(Q) antes de que Tj ejecute escribir(Q)..
Planificación de TransaccionesComprobación de la secuencialidad
Si existe un arco Ti → Tj en el grafo de precedencia, entonces en toda planificación secuencial P′ equivalente a P, Ti debe aparecer antes de Tj.
Planificacionessecuenciales
Planificación de TransaccionesComprobación de la secuencialidad
Si el grafo de precedencia de P tiene un ciclo, entoncesla planificación P no es secuenciable en cuanto aconflictos. Si el grafo no contiene ciclos, entonces laplanificación P es secuenciable en cuanto a conflictos.
Planificación NO Secuenciableen cuanto a conflictos