You are on page 1of 11

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).
Basado en material de los profesores Esther de Ves y Vicente Cervern (Universitat de Valncia)
1
Algoritmo de recuperacin ARIES
El procedimiento de recuperacin consiste en
tres pasos principales:
Anlisis
Rehacer
Deshacer
Identifica las pginas desfasadas y el conjunto de transacciones
activas en el momento de la cada y el punto de la traza
apropiado para empezar la operacin REHACER
En la fase REHACER se replican las operaciones de la
traza, si bien slo se aplican las operaciones necesarias.
Se recorre la traza hacia atrs y se deshacen las
transacciones activas en el momento de la cada, o iniciadas
despus, de las que no se ha encontrado confirmacin.
Basado en material de los profesores Esther de Ves y Vicente Cervern (Universitat de Valncia)
2
Algoritmo de recuperacin ARIES
ARIES utiliza diferentes estructuras de datos:
mantiene un Nmero Secuencial del RH (NSR)
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 desfasadas, que mantiene el gestor
de transacciones,
cuando se produce una cada, estas tablas se recrean en la
fase de anlisis.
Basado en material de los profesores Esther de Ves y Vicente Cervern (Universitat de Valncia)
3
Entradas de la traza para ARIES:
Se escribe un registro para las siguientes acciones:
Escribir
Confirmar
Abortar
Deshacer
Finalizar
NSR LTIMO_NSR ID_TRAN TIPO ID_PAG OTRA_INF
Nmer o
secuenci al
l t i mo NSR
donde i d_t
modi f i c
I dent i f i cador
de t r ansacci n
Ti po de
oper aci n
I dent i f i cador
de pgi na
ent r e ot r as:
i magen ant er i or
i magen post er i or
Basado en material de los profesores Esther de Ves y Vicente Cervern (Universitat de Valncia)
4
Durante la recuperacin:
Tabla de transacciones
Tabla de pginas desfasadas
Entradas de tabla de transacciones:
Entradas de la tabla de pginas desfasadas:
I D_TRANSACCI N LTI MO NSR ESTADO
I D_PGI NA NSR
Se construyen
durante el anlisis
Basado en material de los profesores Esther de Ves y Vicente Cervern (Universitat de Valncia)
5
Los puntos de control implican las siguientes
operaciones:
Escribir en la traza un registro de inicio de punto de
control.
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 desfasadas)
Escribir el NSR del registro de inicio de pto. de control
en un fichero especial.
Basado en material de los profesores Esther de Ves y Vicente Cervern (Universitat de Valncia)
6
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 desfasadas 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_NSR 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 desfasadas, se crea
una nueva entrada en la tabla de pginas desfasadas.
Basado en material de los profesores Esther de Ves y Vicente Cervern (Universitat de Valncia)
7
Recuperacin ARIES. Fase REHACER:
Para reducir el trabajo innecesario, se empieza desde
un punto donde se sabe que los cambios previos a
las pginas desfasadas ya estn aplicados a la BD en
disco.
Para ello se localiza el NSR ms pequeo (M) de la
tabla de pginas desfasadas (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 desfasadas no tiene que ser rehecho;
si para un cambio de una pgina P con un NSR N dado
dicha pgina tiene una entrada en la tabla de pginas
NSR(P)>N entonces ese cambio ya ha sido aplicado.
Basado en material de los profesores Esther de Ves y Vicente Cervern (Universitat de Valncia)
8
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
ltimo pto. de control
Traza
Tiempo
Fin de la traza
Fase de anlisis
REHACER
DESHACER
Basado en material de los profesores Esther de Ves y Vicente Cervern (Universitat de Valncia)
9
Ejemplo de recuperacin ARIES:
NSR LTIMO_NSR ID_TRAN TIPO ID_PAG OTRA_INF
1 0 T1 Act C . . . .
2 0 T2 Act B . . . .
3 1 T1 Conf . . . .
4 i ni _cont r ol
5 f i n_cont r ol I nf oTabl as
6 0 T3 Act A . . . .
7 2 T2 Act C . . . .
8 7 T2 Conf . . . .
T1 3 Conf
T2 2 en pr og
I D_TRAN LTI MO_NSR TI PO I D_PAG NSR
C 1
B 2
Traza
disponible
Tablas
guardadas
en el pto. de
control
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?
Basado en material de los profesores Esther de Ves y Vicente Cervern (Universitat de Valncia)
10
Ejemplo de recuperacin ARIES:
I D_TRAN LTI MO_NSR TI PO
T1 3 Conf
T2 8 Conf
T3 6 en pr og
I D_PAG NSR
C 1
B 2
A 6
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
En la fase REHACER, empezando desde el mnimo NSR en
la tabla de pginas desfasadas (min(NSR)=1)) se rehacen las
actualizaciones de la traza (en este caso NSR=1, 2, 6, 7)
En la fase DESHACER, se deshacen las actualizaciones de la
traza de las transacciones no confirmadas (T3) (i.e. NSR=6)
Basado en material de los profesores Esther de Ves y Vicente Cervern (Universitat de Valncia)
11