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