Abd clase 8

19
CLASE 8 ADMINISTRACIÓN DE BASE DE DATOS PLANIFICACIÓN AUTORES: Prof. Roxydel Dulcey Prof. Josué Ramírez Marzo, 2011

Transcript of Abd clase 8

Page 1: Abd clase 8

CLASE 8

ADMINISTRACIÓN DE BASE DE DATOS

PLANIFICACIÓN

AUTORES:

Prof. Roxydel Dulcey

Prof. Josué Ramírez

Marzo, 2011

Page 2: Abd clase 8

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.

Page 3: Abd clase 8

Planificación de Transacciones

Plan de la ejecución anterior

P1:r1(X);r2(X);w1(X);r1(Y);w2(X);w1(Y);

Page 4: Abd clase 8

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.

Page 5: Abd clase 8

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

Page 6: Abd clase 8

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.

Page 7: Abd clase 8

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.

Page 8: Abd clase 8

Planificación de Transacciones

Recuperabilidad

• Las planificaciones que garantizan la recuperabilidad son:

�Planificaciones recuperables

�Planificaciones sin cascada

Page 9: Abd clase 8

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.

Page 10: Abd clase 8

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.

Page 11: Abd clase 8

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

Page 12: Abd clase 8

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

Page 13: Abd clase 8

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.

Page 14: Abd clase 8

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.

Page 15: Abd clase 8

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..

Page 16: Abd clase 8

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.

Page 17: Abd clase 8

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)..

Page 18: Abd clase 8

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

Page 19: Abd clase 8

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