De forma general el concepto de paralelismo en las bases de datos lo podríamos definir como la
partición de la base de datos (normalmente a nivel de relaciones) para poder procesar de forma
paralela en distintos discos y con distintos procesadores una sola operación sobre la base de
datos.
Los sistemas paralelos de base de datos constan de varios procesadores y varios discos conectados
a través de una red de interconexión de alta velocidad. Para medir el rendimiento de los sistemas
de base de datos existen 2 medidas principales:
El tiempo de respuesta (response time) que es la cantidad de tiempo que necesita para completar
una única tarea a partir del momento en que se envíe. Un sistema que procese un gran número de
pequeñas transacciones puede mejorar su productividad realizando muchas transacciones en
paralelo. Un sistema que procese transacciones más largas puede mejorar tanto su productividad
como sus tiempos de respuesta realizando en paralelo cada una de las subtareas de cada
transacción.
http://basesdedatos2.blogspot.es/
https://modelosbd2012t1.wordpress.com/2012/03/24/base-de-datos-paralelas/
Un sistema manejador de bases de datos (SGBD, por sus siglas en inglés) o DataBase Management
System (DBMS) es una colección de software muy específico, cuya función es servir
de interfaz entre la base de datos, el usuario y las distintas aplicaciones utilizadas.
En el caso de la base de datos paralelas un SGBD que se ejecuta sobre múltiples procesadores y
discos que han sido diseñados para ejecutar operaciones en paralelo, cuando sea posible, con el
propósito de mejorar el rendimiento.
Existen varios factores relacionados con la implementación de bases de datos paralelas que
no se presentan en bases de datos centralizadas.
https://modelosbd2012t1.wordpress.com/2012/03/24/base-de-datos-paralelas/
https://ingenierosinformatica9.wordpress.com/2011/06/13/base-de-datos-paralelas/
https://blog.powerdata.es/el-valor-de-la-gestion-de-datos/bid/406549/qu-es-el-sistema-
manejador-de-bases-de-datos
Por qué usar la BBDDP
Actualmente los Sistemas Paralelos se están comercializando con éxito por prácticamente
todos los fabricantes de BD. Tal cambio lo han impulsado las siguientes tendencias:
Los requisitos transaccionales de las empresas han aumentado, con el uso creciente de las
computadoras.
El crecimiento de la WWW y los datos recogidos por los visitantes han producido BD
extremadamente grandes en muchas empresas.
Las empresas utilizan volúmenes crecientes de datos para planificar sus actividades y sus
tarifas.
Las consultas utilizadas para estos fines se denominan consultas de Ayuda a la Toma de
Decisiones y las necesidades de datos para las mismas pueden llegar a los terabytes.
Los sistemas con un único procesador no son capaces de tratar volúmenes de datos tan
grandes a la velocidad necesaria.
https://ingenierosinformatica9.wordpress.com/2011/06/13/base-de-datos-paralelas/
Arquitecturas
Memoria compartida
MEMORIA COMPARTIDA
• En una arquitectura de Memoria Compartida (M. C.) los procesadores y los discos
tienen acceso a una memoria común (a través de un bus o de una red de
interconexión).
• El beneficio de la memoria compartida es la extremada eficiencia en cuanto a la
comunicación entre procesadores.
• Cualquier procesador puede acceder a los datos de la M. C. sin necesidad de la
intervención del SW.
• Un procesador puede enviar mensajes a otros procesadores utilizando escrituras en
la M. C.
• De modo que la velocidad de envío es mucho mayor (normalmente inferior a un
microseg.) que la que alcanza un mecanismo de comunicación.
• El inconveniente de las máquinas con memoria compartida es que la arquitectura no
puede ir más allá de 32 o 64 procesadores.
• Esto porque el bus o la red de interconexión se convertirían en un cuello de botella.
Una Solución:
Problema:
• En un sistema de este tipo cada nodo del sistema consta de un procesador, memoria
y uno o más discos.
• Los procesadores pueden comunicarse utilizando una red de interconexión de alta
velocidad.
• Un nodo funciona como un servidor de los datos almacenados en los discos que
posee.
• El modelo salva el inconveniente de requerir que todas las operaciones de E/S
vayan a través de una única red.
• Todas las referencias a los discos locales son servidas por los discos locales de cada
procesador.
• Solamente van por la red las peticiones, los accesos a discos remotos y las
relaciones de resultados.
• Las arquitecturas sin compartimiento son más ampliables y pueden soportar con
facilidad un gran número de procesadores.
• El principal inconveniente es el costo de comunicación y de acceso a discos
remotos; esto porque necesita la intervención del SW en ambos extremos.
JERÁRQUICA
https://slideplayer.es/slide/1048471/
De forma general podemos hablar de paralelismo de E/S cuando hablamos de divisiones en
las relaciones entre varios discos para reducir el tiempo necesario de su recuperación.
· División por rangos: Se distribuye rangos contiguos de valores de los atributos a cada
disco. Para ello se escoge un atributo de división, AD, como vector de división y la relación
se divide de la siguiente manera:
o Sea [vo, v1, …, vn-2] el vector de división con i<j y vi<vj. Considérese una tupla t
Cuando ya hemos dividido una relación en varios discos se puede recuperar en paralelo
utilizándolos todos de la misma manera que se puede escribir en paralelo cuando se está
dividiendo una relación. Por lo tanto, cuando se quiera leer (o escribir) la relación completa
ganaremos tiempo gracias al paralelismo. Además de leer de forma completa una relación
existen otro tipo de lecturas o consultas:
· Consultas concretas: Buscan tuplas con un determinado valor para un atributo concreto.
· Consultas de rango: Buscan tuplas con un valor que esté dentro de un rango para un
atributo concreto.
Las técnicas de división explicadas permiten estos tipos de acceso pero con diferentes
niveles de eficacia:
· Turno rotatorio: Se adapta bien a la exploración completa pero no es eficiente para
consultas concretas y de rango ya que tiene que buscar en todos los discos.
· División por asociación: Este esquema se adapta bien a las consultas concretas basadas
en el atributo de división ya que dirigimos la consulta al disco que se nos indica la función
de asociación para el atributo y el valor del mismo. También se adapta bien a una
exploración completa si la función de asociación reparte bien las tuplas en los discos. Sin
embargo no es adecuada esta técnica para consultas concretas cuando el atributo de
búsqueda no coincide con el atributo de división.
· División por rangos: Se adapta bien a las consultas concretas y de rango basadas en el
atributo de división. Para consultas concretas se debe analizar el vector de división para ver
en que disco está la tupla al igual que para una consulta de rango se consulta el vector de
división para ver en que rango de discos están las tuplas.
https://modelosbd2012t1.wordpress.com/2012/03/24/base-de-datos-paralelas/
Paralelismo entre consultas
Los sistemas de bases de datos con arquitectura paralela deben asegurar de que dos
procesadores no actualicen simultáneamente los mismos datos de manera independiente.
Cuando un procesador accede a los datos o los actualiza, el sistema de bases de datos debe
garantizar que tenga su última versión en la memoria intermedia. El problema de asegurar
que la versión sea la última disponible se denomina problema de coherencia de cache.
Existen una serie de protocolos para garantizar la coherencia de cache, que normalmente
se integran con los de control de concurrencia para reducir la sobrecarga.
Los protocolos de este tipo de sistemas de disco compartido son los siguientes:
· Antes de que una transacción libere el bloqueo exclusivo de una página, la traslada al
disco compartido, posteriormente libera el bloqueo.
Con este protocolo se garantiza que cuando una transacción establece un bloqueo
compartido o exclusivo sobre una página, obtenga la copia correcta de la página.