Abd clase 8
-
Upload
yusmar-devia -
Category
Documents
-
view
511 -
download
2
Transcript of Abd clase 8
![Page 1: Abd clase 8](https://reader037.fdocuments.net/reader037/viewer/2022102806/55a4685f1a28abd7238b46ff/html5/thumbnails/1.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102806/55a4685f1a28abd7238b46ff/html5/thumbnails/2.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102806/55a4685f1a28abd7238b46ff/html5/thumbnails/3.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102806/55a4685f1a28abd7238b46ff/html5/thumbnails/4.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102806/55a4685f1a28abd7238b46ff/html5/thumbnails/5.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102806/55a4685f1a28abd7238b46ff/html5/thumbnails/6.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102806/55a4685f1a28abd7238b46ff/html5/thumbnails/7.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102806/55a4685f1a28abd7238b46ff/html5/thumbnails/8.jpg)
Planificación de Transacciones
Recuperabilidad
• Las planificaciones que garantizan la recuperabilidad son:
�Planificaciones recuperables
�Planificaciones sin cascada
![Page 9: Abd clase 8](https://reader037.fdocuments.net/reader037/viewer/2022102806/55a4685f1a28abd7238b46ff/html5/thumbnails/9.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102806/55a4685f1a28abd7238b46ff/html5/thumbnails/10.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102806/55a4685f1a28abd7238b46ff/html5/thumbnails/11.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102806/55a4685f1a28abd7238b46ff/html5/thumbnails/12.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102806/55a4685f1a28abd7238b46ff/html5/thumbnails/13.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102806/55a4685f1a28abd7238b46ff/html5/thumbnails/14.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102806/55a4685f1a28abd7238b46ff/html5/thumbnails/15.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102806/55a4685f1a28abd7238b46ff/html5/thumbnails/16.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102806/55a4685f1a28abd7238b46ff/html5/thumbnails/17.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102806/55a4685f1a28abd7238b46ff/html5/thumbnails/18.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102806/55a4685f1a28abd7238b46ff/html5/thumbnails/19.jpg)
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