Page 1


El diseñar un sistema confiable que pueda recuperarse de fallas, requiere que se identifiquen los tipos de fallas con las cuales el sistema tiene que tratar.

Los tipos de fallas que pueden suceder de forma general son los siguientes:  Fallas  Fallas  Fallas  Fallas  Fallas

de transacciones. del sistema. del medio de almacenamiento. de comunicación. de usuario.


Causas principales de Fallas en Transacciones 

Un error debido a datos de entrada incorrectos.

Detección de un interbloqueo.

La forma común de enfrentar las fallas en transacciones es abortarlas.

Se han determinado que el 3% de transacciones abortan de manera anormal.

las


Causas principales de Fallas del Sistema 

Se pueden presentar las siguientes fallas en cada sistema de base de datos:  El procesador.  La memoria principal.  La fuente de energía de un nodo.

En este tipo de fallas se asume que el contenido de la memoria principal se pierde, pero el contenido del almacenamiento secundario es seguro.


Fallas parciales y totales ď‚ž

Generalmente se hace diferencia entre las fallas parciales y totales del nodo.

ď‚ž

Una falla total se presenta en todos los nodos del sistema distribuido.

ď‚ž

Una falla parcial se presenta sĂłlo en algunos nodos del sistema.


Fallas del medio de almacenamiento 

Se refieren a las fallas que se pueden presentar en los dispositivos de almacenamiento secundario que almacenan las bases de datos.

Dichas fallas se pueden presentar por errores del: ○ Sistema operativo. ○ Controlador de disco. ○ Propio disco.


Fallas de comunicación 

Las fallas de comunicación en un sistema distribuido son frecuentes.

Estas se pueden expresar como una pérdida de mensajes, lo que lleva en un caso extremo a dividir la red en varias subredes separadas.


Recuerda que: 

Como con los protocolos de recuperación local, las versiones distribuidas ayudan a mantener la atomicidad y durabilidad de las transacciones.

La ejecución de los comandos begin_transaction, read y write NO provoca ningún cambio significativo.

Sin embargo, la ejecución de las operaciones: commit, abort y recover requieren del desarrollo de un protocolo especial para cada una de ellas en el cual participan todos los nodos de la red que intervienen en una transacción.


A continuación se presenta de forma breve algunos problemas que se pueden llegar a detectar en los sistemas distribuidos y que no se presentan en sistemas centralizados.  ¿cómo ejecutar un comando commit para transacciones

distribuidas?  ¿cómo asegurar la atomicidad y durabilidad de las

transacciones distribuidas?  Si llega a ocurrir una falla, ¿cómo pueden, los nodos que

permanecen funcionando seguir operando normalmente? Idealmente, la ocurrencia de la falla en un nodo no debe forzar a los otros nodos a tener que esperar a que se repare la falla en el nodo para terminar una determinada transacción. A esto se le llama propiedad nobloqueante.


De manera similar cuando ocurre una falla:  ¿Cómo terminar una transacción que se estaba

ejecutando al momento de la falla?  Como se mencionó anteriormente, idealmente un

nodo con falla debería poder terminar una transacción sin tener que consultar a los otros nodos. Esta es una propiedad de independencia del nodo con falla con respecto a los nodos sin falla.  Una recuperación independiente supone que

existe una estrategia nobloqueante en el manejo de fallas.


Protocolos de recuperación distribuida 

Para facilitar la descripción de los protocolos de confiablidad se supondrá que en el nodo que se origina una transacción hay un proceso llamado el coordinador, que ejecuta las operaciones de la transacción.

El coordinador se comunica con procesos participantes en los otros nodos los cuales lo ayudan en las operaciones de la transacción.


Two Phase Commit 

El compromiso de dos fases es un protocolo muy sencillo y elegante, que asegura la atomicidad de las transacciones distribuidas.

Extiende los efectos de una operación local de commit a transacciones distribuidas poniendo de acuerdo a todos los nodos involucrados en la ejecución de una transacción antes de que los cambios hechos por la transacción sean permanentes.


Two Phase Commit 

Fase 1: el coordinador hace que todos los participantes estén listos para escribir los resultados en la base de datos.

Fase 2: todos escriben los resultados en la base de datos.

La terminación de una transacción se hace mediante la regla del compromiso global, es decir:


El coordinador aborta una transacción si y solamente si al menos un participante vota porque se aborte.

El coordinador hace un commit de la transacción si y sólo si todos los participantes votan porque se realice el commit.


La operación del compromiso de dos fases entre un coordinador y un participante en ausencia de fallas se presenta en la siguiente imagen, en donde los círculos indican los estados y las líneas entrecortadas indican mensajes entre el coordinador y los participantes.

Las etiquetas en las líneas entrecortadas especifican la naturaleza del mensaje.


Semana 5  
Semana 5  
Advertisement