Shadow Paging es una técnica de recuperación que se utiliza para recuperar la base de datos . En esta técnica de recuperación, la base de datos se considera compuesta por un tamaño fijo de unidades lógicas de almacenamiento que se denominan páginas. las páginas se asignan a bloques físicos de almacenamiento, con la ayuda de la tabla de páginas que permite una entrada para cada página lógica de la base de datos. Este método utiliza dos tablas de páginas denominadas tabla de páginas actual y tabla de páginas ocultas .
Las entradas que están presentes en la tabla de la página actual se utilizan para apuntar a las páginas de la base de datos más recientes en el disco. Otra tabla, es decir, la tabla de la página de la sombra, se usa cuando comienza la transacción que está copiando la tabla de la página actual. Después de esto, la tabla de la página oculta se guarda en el disco y la tabla de la página actual se usará para la transacción. Las entradas presentes en la tabla de la página actual pueden cambiarse durante la ejecución, pero en la tabla de la página oculta nunca se cambia. Después de la transacción, ambas tablas se vuelven idénticas.
Esta técnica también se conoce como actualización Cut-of-Place.
Para entender el concepto, considere la figura anterior. En estas 2 operaciones de escritura se realizan en las páginas 3 y 5. Antes del inicio de la operación de escritura en la página 3, la tabla de la página actual apunta a la página anterior 3. Cuando comienza la operación de escritura, se realizan los siguientes pasos:
- En primer lugar, comience la búsqueda del bloque libre disponible en los bloques de disco.
- Después de encontrar el bloque libre, copia la página 3 en el bloque libre, que está representado por la página 3 (Nueva).
- Ahora, la tabla de la página actual apunta a la página 3 (nueva) en el disco, pero la tabla de la página oculta apunta a la página 3 anterior porque no está modificada.
- Los cambios ahora se propagan a la Página 3 (Nueva), a la que apunta la tabla de la página actual.
Operación COMMIT:
Para confirmar la transacción, se deben realizar los siguientes pasos:
- Todas las modificaciones realizadas por transacción que están presentes en los búferes se transfieren a la base de datos física.
- Salida de la tabla de la página actual al disco.
- Dirección de disco de la salida de la tabla de página actual a una ubicación fija que se encuentra en un almacenamiento estable que contiene la dirección de la tabla de página oculta. Esta operación sobrescribe la dirección de la antigua tabla de páginas ocultas. Con esta tabla de página actual se convierte en la misma que la tabla de página oculta y se confirma la transacción.
Falla:
si el sistema falla durante la ejecución de la transacción pero antes de la operación de confirmación, con esto, es suficiente solo para liberar las páginas de la base de datos modificadas y descartar la tabla de la página actual. Antes de la ejecución de la transacción, el estado de la base de datos se recupera reinstalando la tabla de la página oculta.
Si el bloqueo del sistema ocurre después de la última operación de escritura, no afecta la propagación de los cambios realizados por transacción. Estos cambios se conservan y no es necesario realizar la operación de rehacer.
ventajas :
- Este método requiere menos accesos al disco para realizar la operación.
- En este método, la recuperación del bloqueo es económica y bastante rápida.
- No hay necesidad de operaciones como Deshacer y Rehacer.
Desventajas:
- Debido al cambio de ubicación en el disco debido a la actualización de la base de datos, es bastante difícil mantener las páginas relacionadas en la base de datos más cerca del disco.
- Durante la operación de confirmación, los bloques modificados serán señalados por la tabla de páginas ocultas que deben devolverse a la colección de bloques libres; de lo contrario, se volverán accesibles.
- La confirmación de una sola transacción requiere múltiples bloques, lo que disminuye la velocidad de ejecución.
- Permitir esta técnica para múltiples transacciones al mismo tiempo es difícil.
Publicación traducida automáticamente
Artículo escrito por itskawal2000 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA