El algoritmo para recuperación y aislamiento que aprovecha la semántica (ARIES) se basa en el protocolo Write Ahead Log (WAL). Cada operación de actualización escribe un registro que es uno de los siguientes:
- Registro de solo deshacer: solo
se registra la imagen anterior. Por lo tanto, se puede realizar una operación de deshacer para recuperar los datos antiguos. - Registro de solo rehacer: solo
se registra la imagen posterior. Por lo tanto, se puede intentar una operación de rehacer. - Registro de registro de deshacer y rehacer:
se registran tanto las imágenes anteriores como las posteriores.
En él, a cada registro de registro se le asigna un número de secuencia de registro (LSN) único y que aumenta monótonamente. Cada página de datos tiene un campo LSN de página que se establece en el LSN del registro correspondiente a la última actualización de la página. WAL requiere que el registro de registro correspondiente a una actualización llegue a un almacenamiento estable antes de que la página de datos correspondiente a esa actualización se escriba en el disco. Por motivos de rendimiento, cada escritura de registro no se fuerza inmediatamente en el disco. Se mantiene una cola de registro en la memoria principal para almacenar en búfer las escrituras de registro. La cola del registro se descarga en el disco cuando se llena. Una transacción no puede declararse confirmada hasta que el registro del registro de confirmación llegue al disco.
De vez en cuando, el subsistema de recuperación escribe un registro de punto de control en el registro. El registro del punto de control contiene la tabla de transacciones y la tabla de páginas sucias. Un registro maestro se mantiene por separado, en almacenamiento estable, para almacenar el LSN del último registro de punto de control que llegó al disco. Al reiniciar, el subsistema de recuperación lee el registro maestro para encontrar el LSN del punto de control, lee el registro del punto de control e inicia la recuperación a partir de ahí.
El proceso de recuperación en realidad consta de 3 fases:
- Análisis:
el subsistema de recuperación determina el registro de registro más antiguo a partir del cual debe comenzar el siguiente paso. También escanea el registro hacia adelante desde el registro del punto de control para construir una instantánea de cómo se veía el sistema en el momento del bloqueo. - Rehacer:
a partir del primer LSN, el registro se lee hacia adelante y cada actualización se rehace. - Deshacer:
el registro se escanea hacia atrás y las actualizaciones correspondientes a las transacciones perdedoras se deshacen.
Publicación traducida automáticamente
Artículo escrito por lemilxavier y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA