Buscar este blog

jueves, 5 de julio de 2012

PRESENTACIÓN Y OBJETIVO


PRESENTACIÓN
  • A continuación le presentamos información a cerca de Base de Datos Distribuida, desde la evolución, historia, componentes, con vídeos que ayudan al entendimiento del tema. Este portafolio está realizado por los alumnos de Ingeniería Sistemas - Uladech, para el curso de Proyecto de Base de Datos.


OBJETIVO

  • Este portafolio tiene como objetivo, ayudar en el conocimiento del tema de base de datos distribuidas, para todos los usuarios que necesiten obtener información a cerca de ella  y así ser transmitida en diversas formas, ayudando de alguna manera fomentar el estudio y la lectura.

Base de Datos Distribuida


Evolución

Hay varios factores que han hecho que las bases de datos evolucionen a bases de datos distribuidas. En el mundo de los negocios se ha dado una globalización y a la vez las operaciones de las empresas son cada vez  más descentralizadas geográficamente. También el poder de las computadoras personales aumentó y el costo de los Mainframes ya no tenía sentido. Además la necesidad de compartir datos ha hecho que crezca el mercado de las bases de datos distribuidas.

Componentes
Hardware involucrado
El hardware utilizado no difiere mucho del hardware utilizado en un servidor normal. Al principio se creía que si los componentes de una base de datos eran especializados serían más eficientes y rápidos, pero se comprobó que el decentralizar todo y adoptar un enfoque "nada compartido" (shared-nothing) resultaba más barato y eficaz. Por lo que el hardware que compone una base de datos distribuida se reduce a servidores y la red.

Software
Sistema manejador de base de datos distribuida (DDBMS)
Este sistema está formado por las transacciones y los administradores de la base de datos distribuidos. Un DDBMS implica un conjunto de programas que operan en diversas computadoras, estos programas pueden  ser subsistemas de un único DDBMS de un fabricante o podría consistir de una colección de programas de diferentes fuentes.
Administrador de transacciones distribuidas (DTM)
Este es un programa que recibe las solicitudes de procesamiento de los programas de consulta o transacciones y las traduce en acciones para los administradores de la base de datos. Los DTM se encargan de coordinar y controlar estas acciones. Este DTM puede ser propietario o desarrollado en casa.
Sistema manejador de base de datos (DBMS)
Es un programa que procesa cierta porción de la base de datos distribuida. Se encarga de recuperar y actualizar datos del usuario y generales de acuerdo con los comandos recibidos de los DTM.
Nodo
Un nodo es una computadora que ejecuta un DTM o un DBM o ambos. Un nodo de transacción ejecuta un DTM y un nodo de base de datos ejecuta un DBM.





Detención de bloqueos y concurrencia


Detección de bloqueos y concurrencia
Bloqueos

Un bloqueo en general es cuando una acción que debe ser realizada está esperando a un evento. Para manejar los bloqueos hay distintos acercamientos: prevención, detección, y recuperación. También es necesario considerar factores como que hay sistemas en los que permitir un bloqueo es inaceptable y catastrófico, y sistemas en los que la detección del bloqueo es demasiado costosa.

En el caso específico de las bases de datos distribuidas usar bloqueo de recursos, peticiones para probar, establecer o liberar bloqueos requiere mensajes entre los manejadores de transacciones y el calendarizador. Para esto existen dos formas básicas:
  • Autónoma: cada nodo es responsable por sus propios bloqueos de recursos.
    • Una transacción sobre un elemento con n replicas requiere 5n mensajes
    • Petición del recurso
    • Aprobación de la petición
    • Mensaje de la transacción
    • Reconocimientos de transacción exitosa
    • Peticiones de liberación de recursos
  • Copia Primaria: un nodo primario es responsable para todos los bloqueos de recursos
    • Una transacción sobre un elemento con n copias requiere 2n+3 mensajes
    • Una petición del recurso
    • Una aprobación de la petición
    • n mensajes de la transacción
    • n reconocimientos de transacción exitosa
    • Una petición de liberación de recurso
Podemos definir que dos operaciones entran en conflicto que debe ser resuelto si ambas acceden a la misma data, y una de ellas es de escritura y si fueron realizadas por transacciones distintas.


Concurrencia
El ejemplo más común de un bloqueo mutuo es cuando un recurso A está siendo utilizado por una transacción A que a su vez solicita un recurso B que está siendo utilizado por una transacción B que solicita el recurso A. Entre los ejemplos específicos para las bases de datos distribuidas podemos destacar:
Control de concurrencia
  • El problema de las actualizaciones perdidas: cuando dos transacciones concurrentes borran el efecto una de la otra.
  • Recuperaciones inconsistentes: acceder a información modificada parcialmente por una transacción de Ian.
Soluciones
El control de concurrencia y detección y manejo de bloqueos es un área de mucho estudio en las bases de datos distribuidas, a pesar de esto no hay ningún algoritmo aceptado para solucionar el problema. Esto se debe a varios factores de los cuales se consideran a los siguientes tres los más determinantes:
  1. La data puede estar duplicada en un BDD, por tanto, el manejador de la BDD es responsable de localizar y actualizar la data duplicada.

2.     Si un nodo falla o la comunicación con un nodo falla mientras se realiza una actualización, el manejador debe asegurarse de que los efectos se reflejen una vez el nodo se recupere del fallo.
3.     La sincronización de transacciones en sitios o nodos múltiples es difícil ya que los nodos no pueden obtener información inmediata de las acciones realizadas en otros nodos concurrentemente.
Para el control de bloqueos mutuos no se ha desarrollado ninguna solución viable y la forma más simple y que la mayoría de productos utilizan es la implementación de un tiempo máximo de espera en las peticiones de bloqueos.