Want to create interactive content? It’s easy in Genially!
Protocolos BDD
Jessica Fabiola Heredia Cimental
Created on September 11, 2023
Start designing with a free template
Discover more than 1500 professional designs like these:
Transcript
4.5 confibilidad BDD
Introducción
La confiabilidad en sistemas de bases de datos se refiere a la capacidad del sistema para mantenerse operativo a pesar de fallas o errores, garantizando la precisión y disponibilidad de los datos. Esto se logra mediante el protocolo REDO-UNDO, que permite recuperar cambios no guardados (REDO) y deshacer cambios guardados (UNDO) en caso de fallos. Los puntos de verificación son instantáneas periódicas del estado de la base de datos que facilitan la recuperación después de fallos. El protocolo 2PC (Two Phase Commit) se utiliza en sistemas distribuidos para asegurar que todas las transacciones se completen correctamente mediante un coordinador que verifica y confirma las actualizaciones en todas las bases de datos involucradas.
Confiabilidad
La confiabilidad en un sistema de manejo de bases de datos se refiere a su capacidad para mantenerse operativo y procesar solicitudes de usuario incluso en un entorno no confiable. Esto significa que, aunque los componentes de un sistema distribuido fallen, un DBMS confiable debe continuar ejecutando las solicitudes de usuario sin comprometer la consistencia de la base de datos. La confiabilidad de un DBMS se relaciona con la atomicidad y la durabilidad de las transacciones, y los mecanismos de control de concurrencia deben operar en un entorno confiable para garantizar la integridad de la base de datos.
Propiedades
- ATOMICIDAD: Se refiere cuando las operaciones de una transacción se ejecutan todas o ninguna.
- DURABILIDAD: Después de que una transacción se ejecutó con éxito, los cambios en la BD persisten, más allá de las fallas del sistema
SISTEMA, ESTADO Y FALLA
Un sistema se compone de componentes que interactúan con su entorno, respondiendo a estímulos con un patrón de comportamiento reconocible. El estado externo de un sistema es su respuesta a estímulos externos, mientras que el estado interno es su respuesta a estímulos internos. Cuando un sistema se desvía de su comportamiento especificado, se considera una falla. Cualquier error en los estados internos de los componentes se llama falta, y esto puede llevar a una falla del sistema
PROTOCOLOS REDO/UNDO
En un protocolo de escritura previa en bitácora, se registran dos tipos de entradas en la bitácora: las relacionadas con operaciones REDO (es decir, entradas write_item que contienen solo nuevos valores) y las relacionadas con operaciones UNDO (entradas write_item que contienen tanto los valores antiguos como los nuevos, y entradas read_item). En caso de un fallo, el proceso de recuperación revisa la bitácora para identificar qué transacciones deben deshacerse o rehacerse. - UNDO (T): cuando la bitácora contiene el registro <T,start> pero no contiene el registro <T,commit>.
- REDO (T): cuando la bitácora contiene tanto el registro <T,start> como el registro <T,commit>
En la recuperación de datos, se utilizan dos operaciones: REDO para rehacer cambios y UNDO para deshacerlos en caso de fallos. UNDO restaura los datos a su estado anterior, mientras que REDO aplica los nuevos valores. Mantener el orden es clave: UNDO se ejecuta primero, siguiendo la secuencia inversa de la bitácora, y luego REDO, en el mismo orden de la bitácora.
PUNTOS DE VERIFICACIÓN (CHECK POINTS)
Los checkpoints buscan reducir los tiempos extra en los procesos de búsqueda en la bitácora. Al disparar un checkpoint el sistema realiza la siguiente secuencia de acciones:- Grabar en memoria estable todos los registros de bitácora que están en memoria principal.
- Grabar en disco los bloques modificados de los registros intermedios (buffer).
- Grabar un registro de bitácora <checkpoint> en memoria estable.
Cuando ocurre un fallo del sistema es necesario consultar la bitácora para ver cuáles transacciones deben rehacerse y cuáles deshacerse.
PASOS A SEGUIR ANTE FALLOS
- Si en la bitácora aparece el registro <Ti, commit> antes de <checkpoint> para una transacción Ti, no es necesario realizar una operación REDO.
- Después de un fallo, se examina la bitácora para identificar la última transacción Ti que comenzó antes del último checkpoint. Esto se hace rastreando hacia atrás en la bitácora, buscando el registro <checkpoint> más reciente y el registro <Ti, start> más cercano. Luego, se aplica la operación REDO o UNDO a Ti y todas las transacciones posteriores.
PROTOCOLOS 2PC DE CONFIABILIDAD DISTRIBUID
El protocolo 2PC puede ser lento en la ejecución normal, pero se puede optimizar para reducir el acceso a disco y la cantidad de mensajes en las transacciones. Trata todas las transacciones de la misma manera, sin importar si se completan o se abortan. En el protocolo de bloqueo de dos fases estricto, cada subtransacción debe informar a las demás sobre los bloqueos adquiridos, especialmente cuando una transacción se divide y se ejecuta en diferentes lugares. Las subtransacción se ordenan en un coordinador y las otras participantes.
- Cada subtransacción Ti decide si cometer o abortar, y envía al coordinador un mensaje “. El coordinador toma la decisión final en función de las votaciones de todos los participantes.
- Cuando se presentan fallas en la red, este protocolo puede llevar a estados de bloqueo, esto es, una subtransacción en un sitio que no falló no puede cometer ni abortar hasta que se repare la falla en el sitio de origen.
En la siguiente figura se presentan las dos fases de comunicación para realizar un commit en sistemas distribuidos. El esquema presentado en la figura se conoce como centralizado ya que la comunicación es solo entre el coordinador y los participantes; los participantes no se comunican entre ellos.
Conclusión
La confiabilidad en el contexto de los sistemas de bases de datos es esencial para garantizar la integridad y disponibilidad de los datos, incluso en situaciones de fallos o errores. Hemos explorado conceptos clave como los protocolos REDO-UNDO, que permiten la recuperación de datos después de fallos, y los puntos de verificación (checkpoints), que ayudan a crear instantáneas seguras de la base de datos. Además, hemos analizado el protocolo 2PC (Two Phase Commit) para la confiabilidad distribuida, que asegura la consistencia de las transacciones en entornos distribuidos. Estos elementos son fundamentales para mantener la confiabilidad de los sistemas de bases de datos en cualquier situación.