Vous êtes sur la page 1sur 4

31/03/2013

Introduccin IMPLEMENTACIN DE LA ATOMICIDAD Y LA DURABILIDAD


El componente de gestin de recuperaciones de un sistema de base de datos implementa el soporte para la atomicidad y la durabilidad. En primer lugar consideramos un esquema simple pero extremadamente ineficiente, denominado copia en la sombra.

Copia en la Sombra
Este esquema, que se basa en hacer copias de la base de datos, denominadas copias sombra, asume que slo una transaccin est activa en cada momento y que la base de datos es simplemente un archivo en disco. En disco se mantiene un puntero llamado puntero_bd que apunta a la copia actual de la base de datos.

Copia en la Sombra (2)


En el esquema de copia en la sombra, una transaccin que quiera actualizar una base de datos crea primero una copia completa de dicha base de datos. Todos los cambios se hacen en la nueva copia de la base de datos dejando la copia original (copia en la sombra) inalterada.

31/03/2013

Copia en la Sombra (3)


Si en cualquier punto hay que abortar la transaccin, la copia nueva simplemente se borra. La copia antigua de la base de datos no se ve afectada. Si la transaccin se completa, se compromete como sigue. En primer lugar se consulta al sistema operativo para asegurarse de que todas las pginas de la nueva copia de la base de datos se han escrito en disco.

Copia en la Sombra (4)


Despus de terminar esta orden se actualiza el puntero puntero_bd para que apunte a la nueva copia de la base de datos; la nueva copia se convierte entonces en la copia de la base de datos actual. La copia antigua de la base de datos se borra despus. Se dice que la transaccin est comprometida en el momento en que puntero_bd actualizado se escribe en disco.

Tcnica de copia en la sombra para la atomicidad y la durabilidad

Copia en la Sombra (5)


Veamos ahora la manera en que esta tcnica trata los fallos de las transacciones y del sistema. En primer lugar, considrese un fallo en la transaccin. Si la transaccin falla en algn momento antes de actualizar puntero_bd, el contenido de la base de datos anterior no se ve afectado.

31/03/2013

Copia en la Sombra (6)


Se puede abortar la transaccin simplemente borrando la nueva copia de la base de datos. Una vez que se ha comprometido la transaccin, puntero_bd apunta a todas las modificaciones que sta ha realizado en la base de datos.

Copia en la Sombra (7)


De este modo, o todas las modificaciones de la transaccin se ven reflejadas o ninguna de ellas, independientemente del fallo de la transaccin.

Copia en la Sombra (8)


Considrese ahora el resultado de un fallo en el sistema. Supngase que el sistema falla en algn momento antes de escribir en disco el puntero_bd actualizado. Entonces cuando se reinicie el sistema, leer puntero_bd y ver el contenido original de la base de datos, y ninguno de los efectos de la transaccin ser visible en la base de datos.

Copia en la Sombra (9)


A continuacin supngase que el sistema falla despus de actualizar en disco puntero_bd. Antes de que el puntero se actualice, todas las pginas actualizadas de la nueva copia de la base de datos se escriben en disco. De nuevo, se asume que una vez que un archivo se escribe en disco, su contenido no se daa incluso si hay un fallo del sistema.

31/03/2013

Copia en la Sombra (10)


Por tanto, cuando el sistema se reinicie, leer puntero_bd y ver el contenido de la base de datos despus que la transaccin haya realizado todas las modificaciones.

Copia en la Sombra (11)


La implementacin depende realmente de que escribir puntero_bd sea una operacin atmica; es decir, o se escriben todos sus bytes o ninguno de ellos. Si se escribieran algunos de los bytes del puntero y otros no, el puntero no tendra sentido y al reiniciarse el sistema no se podran encontrar ni la versin anterior ni la nueva de la base de datos.

Copia en la Sombra (12)


Afortunadamente los sistemas de disco proporcionan actualizaciones atmicas de bloques enteros, o al menos de un sector del disco. En otras palabras, el sistema de disco garantiza la actualizacin automtica de puntero_bd.

Copia en la Sombra (13)


De este modo, la implementacin de la copia en la sombra del componente de gestin de recuperaciones asegura las propiedades de atomicidad y durabilidad de las transacciones.