En los entornos distribuidos de datos podemos encontrar lo siguientes:
Fallo de los nodos. Cuando un nodo falla, el sistema deberá continuar
trabajando con los nodos que aún funcionan. Si el nodo a recuperar es una base
de datos local, se deberán separar los datos entre los nodos restantes antes de
volver a unir de nuevo el sistema.
Copias múltiples de fragmentos de datos. El subsistema encargado del
control de concurrencia es el responsable de mantener la consistencia en todas
las copias que se realicen y el subsistema que realiza la recuperación es el
responsable de hacer copias consistentes de los datos de los nodos que han
fallado y que después se recuperarán.
Transacción distribuida correcta. Se pueden producir fallos durante la
ejecución de una transacción correcta si se plantea el caso de que al acceder a
alguno de los nodos que intervienen en la transacción, dicho nodo falla.
Fallo de las conexiones de comunicaciones. El sistema debe ser capaz de
tratar los posibles fallos que se produzcan en las comunicaciones entre nodos. El
caso mas extremo es el que se produce cuando se divide la red. Esto puede
producir la separación de dos o más particiones donde las particiones de cada nodo
pueden comunicarse entre si pero no con particiones de otros nodos.
Para implementar las soluciones a estos problemas, supondremos que los datos se
encuentran almacenados en un único nodo sin repetición. De ésta manera sólo
existirá un único catálogo y un único DM (Data Manager) encargados del control y
acceso a las distintas partes de los datos.
Para mantener la consistencia de los datos en el entorno distribuido contaremos
con los siguientes elementos:
Catálogo: Programa o conjunto de programas encargados de controlar la
ejecución concurrente de las transacciones.
CM (Cache Manager). Subsistema que se encarga de mover los datos entre las
memorias volátiles y no volátiles, en respuesta a las peticiones de los niveles
más altos del sistema de bases de datos. Sus operaciones son Fetch(x) y
Flush(x).
RM (Recovery Manager). Subsistema que asegura que la base de datos
contenga los efectos de la ejecución de transacciones correctas y ninguno de
incorrectas. Sus operaciones son Start, Commit, Abort, Read, Write, que utilizan
a su vez los servicios del CM.
DM (Data Manager). Unifica las llamadas a los servicios del CM y el RM.
TM (Transaction Manager). Subsistema encargado de determinar que nodo
deberá realizar cada operación a lo largo de una transacción.
Las operaciones de transacción que soporta una base de datos son: Start, Commit y
Abort. Para comenzar una nueva transacción se utiliza la operación Start. Si aparece
una operación commit, el sistema de gestión da por terminada la transacción con
normalidad y sus efectos permanecen en la base de datos. Si, por el contrario,
aparece una operación abort, el sistema de gestión asume que la transacción no
termina de forma normal y todas las modificaciones realizadas en la base de datos
por la transacción deben de ser deshechas.
No hay comentarios:
Publicar un comentario