En informática , el registro de escritura anticipada ( WAL ) es una familia de técnicas para proporcionar atomicidad y durabilidad (dos de las propiedades de ACID ) en los sistemas de bases de datos . Los cambios se registran primero en el registro, que debe escribirse en un almacenamiento estable , antes de que los cambios se escriban en la base de datos.
En un sistema que usa WAL, todas las modificaciones se escriben en un registro antes de que se apliquen. Por lo general, la información de rehacer y deshacer se almacena en el registro.
El propósito de esto se puede ilustrar con un ejemplo. Imagine un programa que está en medio de realizar alguna operación cuando la máquina en la que se está ejecutando pierde energía. Al reiniciar, es posible que ese programa necesite saber si la operación que estaba realizando tuvo éxito, tuvo éxito parcialmente o falló. Si se usa un registro de escritura anticipada, el programa puede verificar este registro y comparar lo que se suponía que debía hacer cuando perdió energía inesperadamente con lo que realmente se hizo. Sobre la base de esta comparación, el programa podría decidir deshacer lo que había comenzado, completar lo que había comenzado o mantener las cosas como están.
WAL permite que las actualizaciones de una base de datos se realicen in situ . Otra forma de implementar actualizaciones atómicas es con paginación en la sombra , que no está en el lugar. La principal ventaja de realizar actualizaciones in situ es que reduce la necesidad de modificar índices y listas de bloqueo.
ARIES es un algoritmo popular en la familia WAL.
Los sistemas de archivos modernos suelen utilizar una variante de WAL para al menos los metadatos del sistema de archivos ; esto se llama llevar un diario .