Anda di halaman 1dari 14

BBBDDP

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.

El paralelismo se usa para mejorar la velocidad en la ejecución de consultas. Además el


paralelismo se usa para proporcionar dimensionabilidad ya que la creciente carga de trabajo se
trata sin incrementar el tiempo de respuesta pero incrementando el grado de paralelismo.

Los sistemas paralelos mejoran la velocidad de procesamiento y de E/S mediante la utilización de


UCP y discos en paralelo. La fuerza que ha impulsado a los sistemas paralelos de bases de datos ha
sido la demanda de aplicaciones que han de manejar bases de datos extremadamente grandes
(del orden de terabytes, esto es, 1012 bytes) o que tienen que procesar un número enorme de
transacciones por segundo (del orden de miles de transacciones por segundo).

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:

La productividad (throughput) que se entiende como el número de tareas que pueden


completarse en un intervalo de tiempo determinado.

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.

Existen cuatro arquitecturas de sistemas paralelos:

De memoria compartida: Todos los procesadores comparten una memoria común.

De discos compartidos: Todos los procesadores comparten un conjunto de discos común.

Sin compartimiento: Los procesadores no comparten ni memoria ni disco.

Jerárquica: Este modelo es un híbrido de las arquitecturas anteriores.

http://basesdedatos2.blogspot.es/

https://modelosbd2012t1.wordpress.com/2012/03/24/base-de-datos-paralelas/

Combinación de las dos


SGBD

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.

Aspectos Importantes de los SBDP

Existen varios factores relacionados con la implementación de bases de datos paralelas que
no se presentan en bases de datos centralizadas.

Entre los más importantes se encuentran los siguientes:

Diseño de la Base de Datos Paralela: En el diseño de bases de datos paralelas se debe


considerar el problema de como distribuir la información entre los diferentes nodos de la
BDP. Los dos aspectos a tratar en el diseño de la BDP son fragmentación y distribución

Procesamiento de Consultas: En el procesamiento de consultas en BDP se tiene que


considerar el procesamiento de una consulta y además el costo involucrado en la
transmisión de información entre los diferentes nodos para la obtención de los resultados de
la consulta que se solicitó.

Control de Concurrencia: El control de concurrencia es la actividad de coordinar accesos


concurrentes a la base de datos. Un aspecto interesante del control de concurrencia es el
manejo de interbloqueos. El sistema no debe permitir que dos o más transacciones se
bloqueen entre ellas.

Confiabilidad: En cualquier sistema de bases de datos, centralizado o paralelo, se deben


ofrecer garantías de que la información es confiable. En sistemas paralelos, el manejo de la
atomicidad y durabilidad de las transacciones es aún más complejo, pues una sola
transacción puede involucrar dos o más fragmentos de la BDP.

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.

La naturaleza orientada a conjuntos de las consultas de BD se presta de manera natural a


la paralelización.

Varios sistemas comerciales y de investigación han demostrado la potencia y


dimensionalidad del procesamiento paralelo de consultas.

Con el abaratamiento de los microprocesadores, las máquinas paralelas se han vuelto


comunes y relativamente baratas.

El paralelismo también se utiliza para proporcionar ampliabilidad, y las cargas de trabajo


crecientes se tratan sin aumentar el tiempo de respuesta mediante un aumento en el grado
de paralelismo.

https://ingenierosinformatica9.wordpress.com/2011/06/13/base-de-datos-paralelas/
Arquitecturas

 Memoria compartida: Todos los procesadores comparten una memoria común.


 Disco compartido: Todos los procesadores comparten un disco común.
 Sin compartimiento: Los procesadores no comparten ni memoria ni disco.
 Jerárquico: Es un híbrido de las anteriores.

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.

• Llega un momento en el que no sirve de nada añadir más procesadores.


• Ya que éstos emplean la mayoría de su tiempo esperando su turno para utilizar el
bus y así poder acceder a la memoria.

Una Solución:

• Las arquitecturas de M. C. suelen dotar a cada procesador de una memoria caché


muy grande para evitar, siempre que sea posible, las referencias a la M. C.

Problema:

• No obstante, en la caché no podrán estar todos los datos y no podrá evitarse el


acceso a la M. C.
• Además, las cachés necesitan mantener la coherencia.
• Si un procesador realiza una escritura en una posición de memoria, los datos de
dicha posición de memoria se deberían actualizar o eliminar de cualquier
procesador donde estuvieran los datos en caché.
• El mantenimiento de la coherencia de la caché aumenta la sobrecarga cuando
aumenta el número de procesadores.
• Por estas razones las máquinas con memoria compartida no pueden extenderse
llegado un punto.

DISCO COMPARTIDO

• En el modelo de disco compartido todos los procesadores pueden acceder


directamente a todos los discos a tráves de una red de interconexión, pero los
proceadores tienen memoria privada.
• Estas arquitectura ofrecen dos ventajas respecto de las de M. C.

1. El bus de la memoria deja de ser un cuello de botella, ya que cada


procesador dispone de memoria propia.
2. Esta arquitectura ofrece una forma barata para proporcionar una cierta
tolerancia ante fallos.

• Si falla un procesador (o su memoria) los demás procesadores pueden hacerse cargo


de sus tareas.
• Ya que la base de datos reside en los discos, a los cuales tienen acceso todos los
procesadores.
• La arquitectura de disco compartido tiene aceptación en bastantes aplicaciones.
• El problema principal de los sistemas de discos compartidos es la ampliabilidad.
• Aunque el bus de la memoria no es cuello de botella muy grande, la interconexión
con el subsistema de discos es ahora el nuevo cuello de botella.
• Esto es especialmente grave en situaciones en las que la BD realiza un gran número
de acceso a los discos.
• Los sistemas de discos compartidos pueden soportar un mayor número de
procesadores en comparación con los sistemas de M. C.
• Pero la comunicación entre los procesadores es más lenta (hasta unos pocos
milisegundos), ya que se realiza a través de una red de interconexión.
• Este sistema de discos compartidos fue desarrollado por DEC (ahora HP-Compaq).
• Y actualmente se encuentra soportado por Oracle, llamado Oracle Rdb.
SIN COMPARTIMIENTO

• 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

• La arquitectura jerárquica combina las características de las arquitectura de


memoria compartida, de disco compartido y sin comportamiento.
• A alto nivel el sistema está formado por nodos que están interconectados mediante
una red y no comparten ni memoria ni discos.
• Cada nodo del sistema podría ser en realidad un sistema de M. C. con algunos
procesadores.
• Alternativamente, cada nodo podría ser un sistema de disco compartido.
• Y cada uno de estos sistemas de disco compartido podría ser un sistema de memoria
compartida.
• De esta manera, un sistema podría construirse como una jerarquía con una
arquitectura de M. C. con pocos procesadores en la base, en lo más alto una
arquitectura sin compartimiento y quizá una arquitectura de disco compartido en
medio.
• Los sistemas paralelos comerciales de BD se pueden ejecutar sobre varias de estas
arqutecturas.
• En las arquitecturas de Memoria Virtual Distribuida, hay una única M. C. desde
el punto de vista lógico pero hay varios sistemas de memoria disjuntos desde el
punto de vista físico.
• Estas arquitecturas han surgido como un intento por reducir la complejidad de
programación de los sistemas jerárquicos.
• Se obtiene una única vista del área de memoria virtual de estas memorias disjuntas,
mediante un HW de asignación de memoria virtual en conjunción con un SW extra.
• Las velocidades de acceso son diferentes, dependiendo si la página está disponible
localmente o no, esta arquitectura también se llama Arquitectura de Memoria No
Uniforme (NUMA, NonUniform Memory Architecture).
Ventajas y Desventajas y otra pajita mas

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.

Normalmente la división más común en un entorno de bases de datos paralelas es la


división horizontal. En este tipo de división las tuplas de cada relación se dividen entre
varios discos de modo que cada tupla resida en un disco distinto. Suponiendo que tenemos
n discos (D0,D1,…,Dn) entre los que se van a dividir los datos, existen varias estrategias de
división:

· Turno rotatorio: Se recorre la relación y la i-ésima tupla se envía al disco Di quedando


una distribución homogénea de las tuplas en los discos.

· División por asociación: Se escogen varios atributos del esquema de la relación y se


designan como atributos de división. Se escoge una función de asociación cuyo rango es
{0,1,…,n-1}. Cada tupla de la relación original se asocia en términos de los atributos de
división. Si la función de asociación devuelve i, la tupla de ubica en el disco DI.

· 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

tal que t[A]=x.

o Si x< vo entonces t se ubica en el disco Do.

o Si x≥vn-2 entonces t se ubica en el disco Dn-1.

o Si vi≤x < vi+1 entonces t se ubica en el disco DI+1

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:

· Exploración de la relación completa: Ya mencionada

· 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 cualquier acceso de lectura o escritura de una página, la transacción la bloquea


en modo compartido o excluso, según corresponda. Inmediatamente después de obtener el
bloqueo compartido o exclusivo de la página, la transacción lee también su copia mas
reciente del disco compartido.

· 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.

Anda mungkin juga menyukai