Un sistema de manejo de bases de datos confiable es aquel que puede continua procesando las solicitudes de usuario aún cuando el sistema sobre el que opera no es confiable.
DEFINICION.
La confiabilidad se puede interpretar de varias formas. La confiabilidad se puede ver como una medida con la cual un sistema conforma su comportamiento a alguna especificación. También se puede interpretar como la probabilidad de que un sistema no haya experimentado ninguna falla dentro de un periodo de tiempo dado. La confiabilidad se utiliza típicamente como un criterio para describir sistemas que no pueden ser reparados o donde la operación continua del sistema es crítica.
SISTEMA DE ESTADO O FALLA.
Es un mecanismo que tiene una colección de componentes y sus integraciones con el medio ambiente que responde a estímulos que provienen del mismo con un patrón de comportamiento reconocible. Cada componente de un sistema puede ser así mismo un sistema, llamado comúnmente subsistema.
Estado externo: Es la respuesta que un sistema proporciona a un estímulo externo, Por lo tanto, es posible hablar de un sistema que se mueve dentro de estados externos de acuerdo a un estímulo proveniente del medio ambiente.
Estado interno: Es la respuesta del sistema a un estímulo interno, es decir, desde el punto de vista de confiabilidad es la unión de todos los estado externos de las componentes que constituyen el sistema. Así, el cambio de estado interno se da como respuesta a los estímulos del medio ambiente

El
registro de la base de datos contiene información que es utilizada por
el proceso de recuperación para restablecer la base de datos a un estado
consistente. Esta información puede incluir entre otras cosas:
- el identificador de la transacción,
- el tipo de operación realizada,
- los datos accesados por la transacción para realizar la acción,
- el valor anterior del dato (imagen anterior), y
- el valor nuevo del dato (imagen nueva).

Ejemplo de una falla del sistema.
A pesar que T1 haya
sido terminada, puede suceder que el buffer correspondiente a la página
de la base de datos modificada no haya sido escrito a la base de datos
estable. Así, para este caso la recuperación tiene que volver a realizar
los cambios hechos por T1. A esta operación se le conoce como REDO y se presenta en la Figura de abajo.
La
operación de REDO utiliza la información del registro de la base de
datos y realiza de nuevo las acciones que pudieron haber sido realizadas
antes de la falla. La operación REDO genera una nueva imagen.
Operación REDO.
Por
otra parte, es posible que el administrador del buffer haya realizado
la escritura en la base de datos estable de algunas de las páginas de la
base de datos volátil correspondientes a la transacción T2.
Así,
la información de recuperación debe incluir datos suficientes para
permitir deshacer ciertas actualizaciones en el nuevo estado de la base
de datos y regrasarla al estado anterior. A esta operación se le conoce
como UNDO y se muestra en la Figura de abajo. La operación UNDO
restablece un dato a su imagen anterior utilizando la información del
registro de la base de datos.

Operación UNDO.
De forma similar a la base de datos volátil, el registro de la base de datos se mantiene en memoria principal (llamada los buffers de registro) y se escribe al almacenamiento estable (llamadoregistro estable). Las páginas de registro se pueden escribir en el registro estable de dos formas: síncrona o asíncrona.
En forma síncrona, también llamada un registro forzado, la adición de
cada dato en el registro requiere que la página del registro
correspondiente se mueva al almacenamiento estable. De manera asíncrona,
las páginas del registro se mueven en forma periódica o cuando los
buffers se llenan.

Puntos de verificación (checkpoints).
Cuando
ocurre una falla en el sistema es necesario consultar la bitácora para
determinar cuáles son las transacciones que necesitan volver a hacerse y
cuando no necesitan hacerse. Estos puntos de verificación nos ayudan
para reducir el gasto de tiempo consultando la bitácora. El punto de
verificación es un registro que se genera en la bitácora para concluir
en todo lo que se encuentra antes de ese punto está correcto y
verificado.
Protocolo 2PC de confiabilidad distribuida.
El
protocolo 2PC básico un agente (un agente-DTM en el modelo) con un rol
especial. Este es llamado el coordinador; todos los demás agentes que
deben hacer commit a la vez son llamados participantes.
El
coordinador es responsable de tomar la decisión de llevar a cabo un
commit o abort finalmente. Cada participante corresponde a una
subtransacción la cual ha realizado alguna acción de escritura en su
base de datos local.
Se
puede asumir que cada participante está en un sitio diferente. Aun si
un participante y el coordinador se encuentran en el mismo sitio, se
sigue el protocolo como si estuvieran en distintos sitios.
La
idea básica del 2PC es determinar una decisión única para todos los
participantes con respecto a hacer commit o abort en todas las
subtransacciones locales.
El protocolo consiste en dos fases:
- La primera fase tiene como objetivo alcanzar una decisión común,
- La meta de la segunda fase es implementar esta decisión.
El protocolo procede como sigue:
Fase uno:
• El
coordinador escribe “prepare” en la bitácora y envía un mensaje donde
pregunta a todos los participantes si preparan el commit (PREPARE).
• Cada
participante escribe “ready” (y registra las subtransacciones) en su
propia bitácora si está listo o “abort” de lo contrario.
• Cada participante responde con un mensaje READY o ABORT al coordinador.
• El
coordinador decide el commit o abort en la transacción como un
resultado de las respuestas que ha recibido de los participantes. Si
todos respondieron READY, decide hacer un commit. Si alguno ha
respondido ABORT o no ha respondido en un intervalo de tiempo
determinado se aborta la transacción.
Fase dos:
1. El
coordinador registra la decisión tomada en almacenamiento estable; es
decir, escribe “global_commit” o “global_abort” en la bitácora.
El coordinador envía mensaje de COMMIT o ABORT según sea el caso para su ejecución.
2. Todos
los participantes escriben un commit o abort en la bitácora basados en
el mensaje recibido del coordinador (desde este momento el procedimiento
de recuperación es capaz de asegurar que el efecto de la subtransacción
no será perdido).
Finalmente:
- Todos los participantes envían un mensaje de acuse de recibo (ACK) al coordinador, y ejecutan las acciones requeridas para terminar (commit) o abortar (abort) la subtransacción.
- Cuando el coordinador ha recibido un mensaje ACK de todos los participantes, escribe un nuevo tipo de registro en la bitácora, llamado un registro “completo”.
No hay comentarios:
Publicar un comentario