Está en la página 1de 17

Diseo e Implementacin de Bases de Datos

PROCESAMIENTO DE TRANSACCIONES

Leccin # 11
26 de abril de 2013

Lic. Hairol Romero Sand

Modelo de Almacenamiento
Cuando una transaccin ejecuta una instruccin write no es necesario escribir la actualizacin en el disco. El write slo afecta a una copia de los datos en el registro intermedio (buffer) de la base de datos en la memoria principal. La operacin output posterior que realice el sistema en una pgina de datos modificar la base de datos. Igualmente, los registros de bitcora se guardan en memoria principal al crearse. El sistema pone los registros en almacenamiento estable segn ciertas reglas. La memoria principal tiene tres registros intermedios:

Registro intermedio del sistema. Registro intermedio de bitcora. Registro intermedio de la base de datos.

26 de abril de 2013

Recuperacin de fallo en la transaccin


Retroceso en cascada: Si una transaccin T falla por cualquier razn, en un sistema que permite la ejecucin concurrente, es necesario garantizar que cualquier transaccin concurrente T' que sea dependiente de T (es decir, T' lee datos que T escribe) tambin se aborte. Para recuperarse correctamente del fallo de una transaccin T, puede ser necesario retroceder varias transacciones. Estas situaciones ocurren si las transacciones han ledo datos que T ha escrito.

26 de abril de 2013

Planificaciones Recuperables
El retroceso en cascada puede evitarse imponiendo el requisito adicional de que todos los bloqueos exclusivos que ha puesto una transaccin T deben conservarse hasta que T termine. Esto garantiza que cualquier dato escrito por una transaccin que no se ha ejecutado est bloqueado en modo exclusivo, previniendo que cualquier otra transaccin lea los datos.

26 de abril de 2013

Exploracin de bitcora
En un sistema de procesamiento de transacciones concurrentes es necesario que el registro de bitcora de puntos de verificacin sea de la forma <checkpoint L>, donde L es una lista de transacciones activas en el momento del punto de verificacin. Cuando el sistema se recupera de una cada construye dos listas: La lista de deshacer, que consta de las transacciones a deshacer, y la lista de volver a hacer, que consta de las transacciones que se han de repetir.
Por cada registro que se encuentre de la forma <T coimmits> aadimos T a la lista de volver a hacer. Por cada registro que se encuentre de la forma <Ti starts>, si Ti no est en la lista de volver a hacer aadimos Ti a la lista de deshacer.

26 de abril de 2013

Gestin de Bloqueo

Un sistema est en un estado de bloqueo si existe un conjunto de transacciones tal que cada transaccin del conjunto est esperando a otra transaccin del conjunto.

El nico remedio para esta situacin indeseable es que el sistema invoque alguna accin drstica, como el retroceso de alguna de las transacciones implicadas en el bloqueo.

26 de abril de 2013

Prevencin de Bloqueos
El esquema esperar - morir: Cuando la transaccin Ti solicita un dato que Tj tiene en ese momento, slo se permitir que Ti espere si tiene una hora de entrada menor que la de Tj (es decir, Ti es ms antigua que Tj). En caso contrario, Ti retrocede (muere). Por ejemplo supngase que las transacciones T6, T7 y T8 tienen horas de entrada 5, 10 y 15, respectivamente. Si T6 solicita un dato que T7 tiene, T6 esperar. Si T8 solicita un dato que T7 tiene, T8 retroceder.

26 de abril de 2013

Deteccin y recuperacin de bloqueos


Si un sistema no utiliza algn protocolo que garantice la libertad de bloqueo, debe emplearse un esquema de deteccin y recuperacin. Cada cierto tiempo se invoca un algoritmo que examina el estado del sistema para determinar si ha ocurrido algn bloqueo. Si as fuera el sistema debe tratar de recuperarse del bloqueo.

Deteccin de bloqueos:
Los bloqueos pueden describirse de manera precisa en trminos de un grafo dirigido denominado grafo de espera. Este grafo consta de un par G = (V, E), donde V es un conjunto de vrtices y E es un conjunto de aristas. El conjunto de vrtices consta de todas las transacciones del sistema. Cada elemento del conjunto E de aristas es un par ordenado Si Ti ->Tj implica que la transaccin Ti est esperando a que la transaccin Ti libere un dato que ella necesita.

26 de abril de 2013

Deteccin y recuperacin de bloqueos...


T1
0

T1
2

T9 T1
1

Recuperacin de bloqueo: Cuando un algoritmo de deteccin determina que existe un bloqueo, el sistema debe recuperarse del bloqueo. La solucin ms comn es retroceder una o ms transacciones para romper el bloqueo.

26 de abril de 2013

Sistemas de Transaccin de Alto Rendimiento

Para permitir una frecuencia elevada de procesamiento de transacciones (cientos o miles de transacciones por segundo), es necesario utilizar hardware de alto rendimiento y explotar el paralelismo.

26 de abril de 2013

Bases de Datos en Memoria Principal


Normalmente el rendimiento de los sistemas de base de datos est limitado por la velocidad con que se leen los datos y se escriben en el disco. El grado en el que la base de datos est limitada por el disco puede reducirse incrementando el tamao del buffer de la base de datos. Sin embargo existen algunas limitaciones: Si el buffer de la base de datos es grande, la frecuencia con la que los bloques se graban en el disco puede reducirse significativamente. Como resultado, un gran nmero de bloques se marcarn modificados en el momento en que se toma un punto de verificacin. As, la toma de un punto de verificacin llega a ser un proceso extremadamente largo que requiere que se grabe un gran nmero de bloques en el disco.

26 de abril de 2013

Bases de Datos en Memoria Principal...


Si el sistema se cae, se pierde toda la memoria principal. Para la recuperacin, el sistema tiene un buffer de base de datos vaco y los datos deben tomarse del disco cuando se acceda a ellos. La mejora en el rendimiento producida por una memoria principal grande puede dar como resultado que el proceso de registro llegue a ser un cuello de botella. Ejecucin en grupo: Las operaciones de grabacin, a menudo requieren la grabacin de los bloques que slo estn parcialmente llenos. En vez de intentar ejecutar T cuando T termine, el sistema espera a que varias transacciones hayan terminado. Entonces ejecuta este grupo de transacciones juntas.

26 de abril de 2013

Definicin de Transaccin en SQL


El leguaje SQL estndar especifica que una transaccin comienza implcitamente. Las transacciones acaban implcitamente al final de una unidad de trabajo o por una de las siguientes sentencias SQL: Commit work, que termina la transaccin actual y empieza una nueva. Rollback work, que causa que la transaccin actual aborte.

26 de abril de 2013

Transacciones de Larga Duracin


Este concepto se aplica a sistemas de bases de datos que implican interaccin humana. Estas interacciones tienen las siguientes propiedades clave: Larga duracin Exposicin de datos no ejecutados Subtareas Recuperabilidad Rendimiento

26 de abril de 2013

Transacciones Anidadas

Una transaccin de larga duracin puede ser vista como una coleccin de subtareas o subtransacciones relacionadas. Estructurando una transaccin como un conjunto de subtransacciones, podemos aumentar el paralelismo, puesto que puede ser posible ejecutar varias subtransacciones en paralelo. Adems, es posible tratar los fallos de una subtransaccin (debidos a aborto, cada del sistema, etc.) sin tener que retroceder la transaccin de larga duracin entera.

26 de abril de 2013

Transacciones de Compensacin

Para reducir la frecuencia de espera de larga duracin, es necesario que las transacciones que no han terminado se expongan a otras transacciones que se ejecutan de manera concurrente. Sin embargo, la exposicin de los datos no ejecutados puede crear retrocesos en cascada. En vez de deshacer estrictamente todos los cambios que produjo la transaccin que ha fallado, se presta especial atencin a la compensacin del fallo.

26 de abril de 2013

Muchas gracias por su atencin

26 de abril de 2013

También podría gustarte