Actualización diferida frente a actualización inmediata
La actualización diferida y la actualización inmediata son dos técnicas que se utilizan para mantener los archivos de registro de transacciones de los sistemas de gestión de bases de datos (DBMS). El registro de transacciones (también conocido como registro diario o registro de rehacer) es un archivo físico que almacena el ID de transacción, la marca de tiempo de la transacción, el valor anterior y los valores nuevos de los datos. Esto permite que el DBMS realice un seguimiento de los datos antes y después de cada transacción. Cuando se confirman las transacciones y la base de datos vuelve a un estado coherente, es posible que el registro se trunque para eliminar las transacciones confirmadas.
Actualización diferida
La actualización diferida, también llamada NO-UNDO/REDO, es una técnica utilizada para recuperar/soportar fallas en las transacciones que ocurren debido a fallas en el sistema operativo, energía, memoria o máquina. Cuando se ejecuta una transacción, las actualizaciones o modificaciones realizadas en la base de datos por la transacción no se realizan de inmediato. Se registran en el archivo de registro. Los cambios de datos registrados en el archivo de registro se aplican a la base de datos en la confirmación. Este proceso se llama “Rehacer”. Al revertir, se descarta cualquier cambio en los datos registrados en el archivo de registro; por lo tanto, no se aplicarán cambios a la base de datos. Si una transacción falla y no se confirma debido a alguno de los motivos mencionados anteriormente, los registros del archivo de registro se descartan y la transacción se reinicia. Si los cambios en una transacción se confirman antes de fallar, luego de que el sistema se reinicia, los cambios registrados en el archivo de registro se aplican a la base de datos.
Actualización inmediata
La actualización inmediata, también llamada UNDO/REDO, también es otra técnica utilizada para recuperar/soportar fallas en las transacciones que ocurren debido a fallas en el sistema operativo, la energía, la memoria o la máquina. Cuando se ejecuta una transacción, cualquiera de las actualizaciones o modificaciones realizadas por la transacción se escriben directamente en la base de datos. Tanto los valores originales como los valores nuevos también se registran en el archivo de registro antes de que se realicen cambios en la base de datos. Al confirmar, todos los cambios realizados en la base de datos se vuelven permanentes y los registros en el archivo de registro se descartan. Al revertir, los valores antiguos se restauran en la base de datos utilizando los valores antiguos almacenados en el archivo de registro. Todos los cambios realizados por las transacciones en la base de datos se descartan y este proceso se denomina "Deshacer". Cuando el sistema se reinicia después de un bloqueo, todos los cambios en la base de datos se vuelven permanentes para las transacciones confirmadas. Para las transacciones no confirmadas, los valores originales se restauran utilizando los valores del archivo de registro.
¿Cuál es la diferencia entre la actualización diferida y la actualización inmediata?
Aunque la actualización diferida y la actualización inmediata son dos métodos para recuperarse después de una falla del sistema, el proceso que utiliza cada método es diferente. En el método de actualización diferida, cualquier cambio realizado en los datos por una transacción se registra primero en un archivo de registro y se aplica a la base de datos en el momento de la confirmación. En el método de actualización inmediata, los cambios realizados por una transacción se aplican directamente a la base de datos y los valores antiguos y nuevos se registran en el archivo de registro. Estos registros se utilizan para restaurar valores antiguos en la reversión. En el método de actualización diferente, los registros en el archivo de registro se descartan al retroceder y nunca se aplican a la base de datos. Una desventaja del método de actualización diferida es el aumento del tiempo necesario para recuperarse en caso de falla del sistema. Por otro lado, las operaciones de E/S frecuentes mientras la transacción está activa es una desventaja en el método de actualización inmediata.