Está en la página 1de 10

Paginacin en la sombra

En este esquema solo requiere un diario en un ambiente multiusuario, Se mantiene un directorio actual que apunta a las pginas de las bases de datos. Al comenzar un transaccion se hace la copia del directorio actual en disco a su directorio sombra Las modificaciones se hace no sobre la pgina actual y se manejan versiones, siendo el directorio actual el que es modificado Para recuperar, basta con liberar las paginas modificadas y desechar el directorio actual. Tcnicas de doble paginacin Alternativa a las tcnicas de recuperacin de cadas basadas en diarios. El sistema mantiene dos tablas de paginacin durante la vida de una transaccin, y son idnticas al comenzar la transaccin. Tabla de paginacin actual Puede variar cuando la transaccin realiza una operacin write. Todas las operaciones input y output utilizan esta tabla para localizar las pginas de la BD. Puede almacenarse en memoria voltil. Tabla de paginacin doble No se modifica, y debe almacenarse en memoria no voltil. Commitment con doble paginacin 1. Comprobar que todas las pginas del buffer que haya modificado la transaccin se graban en disco. 2. Grabar en disco la tabla de paginacin actual. 3. Grabar la direccin en disco de la tabla de paginacin actual en la posicin fija de memoria estable que contenga la direccin de la tabla de paginacin doble. Por tanto, la tabla de paginacin actual se convierte en la tabla de paginacin doble y la transaccin est cometida ventajas y desventajas doble paginacin Ventajas frente a los diarios: No es necesario aplicar ningn procedimiento de recuperacin Se elimina el tiempo para grabar registros. La recuperacin de las cadas es ms rpida. Desventajas: Fragmentacin de los datos. Recoleccin de basura.

La doble paginacin es ms difcil de adaptar que un diario a los sistemas que permiten ejecucin concurrente de transacciones.

Algoritmo ARIES
ARIES: conjunto de algoritmo de recuperacin usada en sistemas de Base de Datos. Aries utiliza un esquema de robar/no forzar para a escritura basado en tres conceptos: (1) escritura anticipada, (2) repeticin de la historia durante el rehacer, y (3) anotaciones el log de las modificaciones durante el rehacer. Repeticin de la historia: ARIES vuelve a trazar todas las acciones del sistema de la base de datos antes de la cada para reconstruir el estado de la base de datos cuando ocurri la cada. Las transacciones que no estaban conformadas en el momento de la cada se deshacen. Anotacin en el log de las modificaciones durante el rehacer evita que ARIES repita las operaciones de DESHACER realizadas si se produce un fallo durante la recuperacin que obligue reiniciar el proceso de recuperacin. El procedimiento de ARIES consiste de tres pasos: (1) Anlisis de pginas modificadas en el bfer y conjunto de transacciones activas. (2) REHACER. (3) DESHACER. ARIES necesita el log, la tabla de transacciones y la tabla de pginas sucias. Adems utiliza un registro maestro (master log) que maneja los comienzos de los puntos de control. Anlisis identifica las pginas sucias (actualizadas) en el bfer y el conjunto de transacciones activas en el momento de cada. Tambin se determina el punto apropiado del diario donde deber indicarse las operacin REHACER. La fase de REHACER usa cierta informacin del diario para determinar donde comenzar el REHACER. Adems en esta fase el diario indica si la operacin ya ha sido realizada y si se Necesita rehacer. Durante una recuperacin solo se rehace lo que se necesita. La fase DESHACER escanea hacia atrs y deshace las operaciones de las transacciones activas.

Diario en ARIES
El diario maneja un nmero secuencial de diario (NSD) que corresponde a cada accin de una transaccin. Se escribe un NSD para cada accin de: actualizar, confirmar, abortar, deshacer, y analizar.

Los campos comunes del diario incluyen: NSD anterior de la transaccin, ID de la transaccion, y el tipo de registro del diario. Para los registros de actualizacin, tambin se incluye: ID de la pgina, la longitud del elemento, desplazamiento desde el comienzo de la pagina, imagen antes del elemento (valor anterior), imagen posterior (valor posterior).

Tabla de transacciones y de pginas


La tabla de transacciones tiene una entrada por cada transaccion activa, con el id de la transaccin, el estado de la transaccin y el NSD del registro del diario mas reciente. La tabla de pagina contiene el ID de la pgina y la primera entrada del diario que haya hecho modificacin a la pgina.

ARIES: REHACER
ARIES comienza rehaciendo desde el punto del diario donde sabe que los cambios previos a las pginas sucias han sido ya aplicados a la base de datos en disco. ARIES determina esto encontrando el NSD mas pequeo, M, de todas las paginas sucias de la tabla de pgina sucias.

La tabla de transacciones identifica las transacciones activas que deben deshacerse. La fase comienza de atrs hacia adelante deshaciendo las transacciones activas.

Algoritmo de recuperacin ARIES


Se trata de un mtodo de recuperacin real empleado (con diversas optimizaciones) en la mayora de los SGBD actuales. ARIES utiliza una estrategia robar/no forzar para las escrituras en disco. El algoritmo se basa en tres conceptos: escritura anticipada en la traza. repeticin de la historia (para reconstruir el estado de la BD en el momento de la cada, con rehacer y deshacer). anotacin en el diario de las modificaciones durante el deshacer (para evitar repeticiones de deshacer si se produce un fallo durante la recuperacin). El procedimiento de recuperacin consiste en tres pasos principales:

ARIES utiliza diferentes estructuras de datos: Mantienen un Nmero Secuencial de Diario (NSD) incremental para identificar cada entrada del diario;en la traza se guarda informacin adicional, el algoritmo emplea una tabla de transacciones y una tabla de pginas sucias, que mantiene el gestor de transacciones, cuando se produce una cada, estas tablas se recrean en la fase de anlisis. Entradas de la traza para ARIES:

Se escribe un registro para las siguientes acciones: Escribir Confirmar Abortar Deshacer Finalizar
S e c o n

t r u y e Durante la recuperacin: n

Tabla de transacciones Tabla de pginas sucias d u r a Entradas de tabla de transacciones: n t e ID_TRANSACCIN LTIMO NSD
e l a n NSD ID_PGINA l i Los s puntos de control implican las siguientes operaciones: i Escribir en la traza un registro de inicio de punto de control. s

ESTADO

Entradas de la tabla de pginas sucias:

Escribir en la traza un registro de fin de punto de control (se aaden tambin en la traza los contenidos de la tabla de transacciones y de pginas sucias) Escribir el NSD del registro de inicio de pto. de control en un fichero especial. Recuperacin ARIES. Fase de anlisis: Se accede al fichero especial para localizar el ltimo punto de control adecuado. Comienza la fase de anlisis desde dicho punto de control; la tabla de transacciones activas y la tabla de pginas sucias se recrean mediante la traza. Si se alcanza un fin de transaccin, dicha transaccin deja de estar entre las activas. Si se encuentra en la traza una entrada correspondiente a una transaccin, se modifica la tabla de transacciones cambiando el LTIMO_NSD para esa transaccin, incluyndola si no estaba. Si el registro de la traza es un cambio de una pgina P y sta no estaba en la tabla de pginas sucias, se crea una nueva entrada en la tabla de pginas sucias. Recuperacin ARIES. Fase REHACER:

Para reducir el trabajo innecesario, se empieza desde un punto donde se sabe que los cambios previos a las pginas sucias ya estn aplicados a la BD en disco. Para ello se localiza el NSD ms pequeo (M) de la tabla de pginas sucias (todo lo anterior ya est escrito en disco). Se empieza en ese registro M de la traza y se avanza, rehaciendo slo lo que sea necesario: si un cambio de una pgina P no est en la tabla de pginas sucias no tiene que ser rehecho; si para un cambio de una pgina P con un NSD N dado dicha pgina tiene una entrada en la tabla de pginas NSD(P)>N entonces ese cambio ya ha sido aplicado.

Recuperacin ARIES. Fase DESHACER: Una vez finalizada la fase REHACER, la BD est en el estado del momento de la cada. Teniendo en cuenta la tabla de transacciones activas y no confirmadas (la undo-list) contina hacia atrs desde el final de la traza deshaciendo las operaciones de esas transacciones hasta llegar al principio de cada una de ellas

Ejemplo de recuperacin ARIES: En una planificacin con tres transacciones recin iniciadas {T1: update(C), T2: update(B); T1: commit, pto.control, T3: update(A), T2: update(C), T2: commit, FALLO } Cmo sera el funcionamiento normal y la recuperacin?

En la fase de ANLISIS partimos de las tablas guardadas en el punto de control y las recreamos. Tablas reconstruidas en la fase de anlisis

ID_TRAN T1 T2 T3

LTIMO_NSD 3 8 6

TIPO Conf Conf en prog

ID_PAG En la fase REHACER, empezando desde el mnimo NSD en la tabla de pginas sucias (min(NSD)=1)) se rehacen las actualizaciones de la traza (en este caso NSD=1, 2, 6, 7) En la fase DESHACER, se deshacen las actualizaciones de la traza de las transacciones no confirmadas (T3) (i.e. NSD=6) C B A

NSD 1 2 6

También podría gustarte