ASIX-M10-UF2. SGBD distribuïts. Conceptes. Arquitectura.

De wikijoan
Salta a la navegació Salta a la cerca

Bases de datos distribuidas con Mysql

Una Base De Datos Distribuida (BDD) es un conjunto de múltiples bases de datos lógicamente relacionadas las cuales se encuentran distribuidas en diferentes espacios lógicos e interconectados por una red de comunicaciones, tienen la capacidad de realizar procesamientos autónomos y globales (replicarse).


Es un sistema de base de datos almacenado en varios servidores y que es vista por el cliente como una sola, esto con el objetivo de mantener redundancia, balanceo de carga, etc.

Ante el usuario, un sistema distribuido debe lucir exactamente igual que un sistema que no es distribuido.

La replicación en MySql se puede dar de forma síncrona (clustering) o asíncrona, para el primero se utiliza MySql clúster mientras que para el segundo, un gestor de base de datos Mysql común. En nuestro caso la versión 5.5.8. Actualmente (Junio-2011), mysql clúster existe solamente para plataformas Linux. La replicación copia y mantiene los objetos de las bases de datos en las múltiples bases de datos que levantan un sistema distribuido. La replicación puede mejorar el funcionamiento y proteger la disponibilidad de las aplicaciones, por que alterna opciones de acceso de los datos existentes.


Ahora bien, se explicaran las ventajas y desventajas de poseer una base de datos distribuida con mysql de forma asíncrona.

VENTAJAS

  • Disponibilidad: un fallo en una parte del sistema solo afectará a un fragmento, en lugar de a toda la base de datos, el sistema sigue funcionando aún en caso de caída de uno de los nodos.
  • Aumento del paralelismo: Varios nodos pueden realizar consultas en paralelo sobre la misma tabla.
  • Aumento de la sobrecarga en las actualizaciones: El sistema debe asegurar que todas las réplicas de la tabla sean consistentes. Cuando se realiza una actualización sobre una de ellas, los cambios deben propagarse a todas a lo largo del sistema distribuido.
  • Rendimiento': Los sistemas trabajan en paralelo, lo cual permite balancear la carga en los servidores, se hacen todas las consultas SELECT a un servidor esclavo, mientras las actualizaciones se realizan en el maestro.
  • Modularidad: se pueden modificar, agregar o quitar sistemas de la base de datos distribuida sin afectar a los demás sistemas (módulos).

DESVENTAJAS

  • Complejidad: Se debe asegurar que la base de datos sea transparente, se debe lidiar con varios sistemas diferentes que pueden presentar dificultades únicas. El diseño de la base de datos se tiene que trabajar tomando en cuenta su naturaleza distribuida, por lo cual no podemos pensar en hacer consultas JOIN que afecten varios sistemas.
  • Seguridad: se debe trabajar en la seguridad de la infraestructura así como cada uno de los sistemas.
  • Carencia de estándares: aún no existen herramientas o metodologías que ayuden a los usuarios a convertir un DBMS (Sistema de Administración de Base de Datos) centralizado en un DBMS distribuido.
  • Mayor probabilidad de errores: Como los nodos que constituyen el sistema funcionan en paralelo, es más difícil asegurar el funcionamiento correcto de los algoritmos, así como de los procedimientos de recuperación de fallos del sistema.