Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... ·...

Preview:

Citation preview

Bases de Datos Distribuidas

Carlos A. Olarte (carlosolarte@puj.edu.co)BDII

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Contenido

1 Introduccion

2 Fragmentacion de Datos

3 Transparencia de Red

4 Transacciones Distribuidas

5 Control de Concurrencia

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Introduccion

Por que distribuir los datos?

Ventajas frente a un sistema centralizado

Problemas de los datos distribuidos

Aplicaciones Ejemplo

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Como almacenar los datos?

Replicacion: Copias identicas de la relacion en variosemplazamientos

Fragmentacion: Division de los datos en variosemplazamientos

Esquema mixto: Fragmentar las relaciones y crear replicas delos fragmentos

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Replicacion

Ventajas:

Disponibilidad: Tolerancia a fallos

Aumento del paralelismo: Cada emplazamiento puede realizarconsultas sobre su replica de datos

Desventajas:

Sobrecarga en las actualizaciones: Mantenimiento de laconsistencia

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Fragmentacion de Datos

Los fragmentos deben poder reunirse para formar la relacionoriginal

Esquemas de fragmentacion:

HorizontalVertical

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Fragmentacion Horizontal

Placa Marca CiudadABC123 MAZDA CALIBDE498 MAZDA PALMIRARTE164 CHEVR. CALIRTW452 RENAULT PALMIRA

Placa Marca CiudadABC123 MAZDA CALIRTE164 CHEVR. CALI

Placa Marca CiudadBDE498 MAZDA PALMIRARTW452 RENAULT PALMIRA

ri = σθi(r)

r =⋃

i ri

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Fragmentacion Vertical

Id Placa Marca Ciudad1 ABC123 MAZDA CALI2 BDE498 MAZDA PALMIRA3 RTE164 CHEVR. CALI4 RTW452 RENAULT PALMIRA

Id Placa Marca1 ABC123 MAZDA2 BDE498 MAZDA3 RTE164 CHEVR.4 RTW452 RENAULT

Id Marca Ciudad1 ABC123 CALI2 BDE498 PALMIRA3 RTE164 CALI4 RTW452 PALMIRA

Sea r(R) una relacion.

R =⋃

i Ri

ri = πRi(r)

r = r1 ./ r2 ./ ... ./ rn

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Esquemas Mixtos

Fragmentacion Mixta: Aplicacion de la fragmentacionhorizontal y vertical sobre una misma relacion

Replica y fragmentacion: Replicar fragmentos o fragmentarreplicas

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Transparencia de Red

Los usuarios deben ignorar los detalles de la distribucion de loselementos de datos

Aspectos a tener en cuenta:

NombradoReplicasFragmentacionUbicacion de los fragmentos y replicas

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Nombrado de los Elementos

Un solo servidor (centralizado) de nombres:

Cuello de botellaUna caıda del servidor afecta todo el sistema

Los elementos tienen como prefijos el nombre delemplazamiento

Nombres unicos dentro del sistemaCreacion de alias por facilidad

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Problemas de lectura y escritura

Lectura: Conocer que replica o fragmento utilizar (debe sertransparente para el usuario)

Actualizacion: Actualizar los fragmentos apropiados y TODASlas replicas de los elementos modificados

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Procesamiento de Consultas

Aspectos a tener en cuenta:

Numero de accesos a disco

Costo de transmision en la red

Procesamiento en paralelo de cada emplazamiento

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

... un ejemplo

Sea r1 = σθ1(r) y r2 = σθ2(r) y se desea calcular σθ3(r). ysolo se dispone de los fragmentos y no de la relacion original:

σθ3(r) = σθ3(r1) ∪ σθ3(r2)

Sea r ,t y w relaciones que se almacenan en E1 , E2 y E3

respectivamente, como calcular r ./ t ./ w en E1 ? cual es elcosto de cada alternativa?

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Estrategia por semi-reunion

Sea r(R) y t(T ) tales que se almacenan en E1 y E2

respectivamente. Se puede calcular r ./ s de la siguiente manera:

1 Calcular temp1 ← ΠR∩T (r) en E1

2 Enviar temp1 a E2

3 Calcular temp2 ← t ./ temp1

4 Enviar temp2 a E1

5 Procesar r ./ temp2

Ventajas? Desventajas?

r ./ temp2 es equivalente a r ./ s?

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Transacciones Distribuidas

Transacciones Locales: Solo afectan los elementos delemplazamiento quien inicia la transaccion

Transacciones Remotas: Utilizan recursos de unemplazamiento remoto

Transacciones Distribuidas: Utilizan recursos locales yrecursos de emplazamientos remotos

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Como coordinar las Transacciones

Gestor Trans.: Registrohistorico, control deconcurrencia, etc

Coordinador de transacciones:Coordina la ejecucion detransacciones globales(distribuidas)

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Coordinador de Transacciones

El coordinador de transacciones tiene a cargo:

Iniciar la ejecucion de una transaccion

Divide la transaccion en subtransacciones y envıa lasinstrucciones necesarias a cada emplazamiento

Coordina la terminacion (compromiso o retroceso) de latransaccion

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Que puede fallar en una T. Global?

Un Emplazamiento: Disco, SO, SGBD

Perdida en los mensajes: Debe apoyarse en los protocolos dered (Normalmente se retransmiten los mensajes)

Particionamiento de la red: Un nodo o conjunto de ellos seaislan de la red (fallo en los enlaces de comunicacion)

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Que hacer en caso de falla?

Si el emplazamiento mantiene replicas actualizar el catalogopara que no las refresque mientras se encuentran offline

Abortar las transacciones activas en el emplazamiento quefallo para liberar los bloqueos en los otros emplazamientos (sino se encuentran en proceso de compromiso)

Si el emplazamiento averiado es el servidor central, elegir otroservidor (alg. eleccion del coordinador)

Cuando el nodo se recupere:

Refrescar las replicas y fragmentos modificadosRetroceder las transacciones abortadasRehacer las transacciones comprometidas

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Protocolo de Compromiso de 2 Fases

Cada accion deberegistrarse en el registrohistorico con fines derecuperacion

O todos losemplazamientos secomprometen o todos seabortan (atomicidadglobal)

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Posibles fallos y soluciones en el PC2F

Si el fallo es anterior al mensaje de preparacion, se asume unabort

Si el fallo es posterior al mensaje de preparacion se continua elPC2F

Cuando el emplazamiento se recupera debe:

Si existe 〈ti comprometida〉 en el R.H , rehacer(ti )Si existe 〈ti abortada〉 en el R.H , deshacer(ti )Si existe 〈ti preparada〉 en el R.H , consultar a Ci el destinode la transaccion. Si Ci no responde consultar a los otrosemplazamiento y posponer la decision hasta encontrar unarespuesta de algun nodo.Si el registro no contiene las anteriores, debe abortar (nuncahubo respuesta)

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Que pasa si falla el coordinador?

Si un emplazamiento contiene 〈ti comprometida〉 o〈ti abortada〉 se compromete o aborta la transaccion

Si ningun emplazamiento contiene 〈ti preparada〉 se aborta T(fallo antes de tomar la decision)

Si ningun emplazamiento tiene 〈ti comprometida〉 o〈ti abortada〉, ti espera hasta la recuperacion de Ci y semantienen los bloqueos hasta que esto suceda

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Que pasa si hay division de la red?

Si todos estan en la misma particion no hay problema

Si pertenecen a dos particiones, los emplazamientos“asumiran” que los otros han fallado y se ejecuta el PC2F enlos nodos posibles y en los otros cuando se restablezca elcanal de comunicacion

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Protocolo de Compromiso de 3 Fases

Condiciones:

No pueden producirse divisiones en la red

Como maximo k emplazamientos pueden fallar

Ventajas

No bloquea los recursos ası falle el coordinador

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

...continuacion

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Tratamiento de Fallos con el PC3F

En los participantes:

Antes de preparar se aborta, de lo contrario se sigue elprocedimiento

Cuando se recupera si en el R.H hay un 〈ti abortada〉 o〈ti comprometida〉 se deshace o rehace la transaccion

Si hay 〈ti preparada〉 se pregunta a Ci el estado de ti paraprecomprometer o abortar

Si hay 〈ti precomprometida〉 se consulta a Ci el estado de tipara comprometer, abortar o reactivar el 3FC

Fallo del coordinador:

Si no hay respuesta del coordinador, se ejecuta el protocolo defallo del coordinador y cuando Ci suba, actuara comoparticipante

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Protocolo de Fallo del Coordinador

Se da por supuesto que no hay fallo de la red, es decir que Ci fallo

1 Seleccionar un nuevo coordinador

2 C2 (el nuevo coordinador) pregunta a los emplazamientos elestado de ti

3 Cada emplazamiento determina el estado de ti4 Se decide el estado de T:

Si existe un 〈ti comprometida〉, ti se comprometeSi existe un 〈ti abortada〉 ,ti se abortaSi existe 〈ti precomprometida〉 ,se activa el 3FCDe lo contrario se aborta ti

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Algoritmos de eleccion

Decide quien es el nuevo coordinador:

Copia de Seguridad: Tener un coordinador de backup contoda la informacion necesaria para suplir las funciones de Ci

Eleccion:

Enumerar los emplazamientos y tratar de seleccionar elemplazamiento con numero mayorAlgoritmo luchador: Proponerse como coordinador e informara los otros

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Control de Concurrencia

Enfoque de un solo gestor:

Un solo emplazamiento concede los bloqueos

Implementacion sencilla

Facil deteccion de Dead Locks

Cuello de Botella

Todo el sistema puede fallar si falle el gestor de bloqueos

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

...continuacion

Enfoque de varios gestores:

Cada emplazamiento es responsable de un conjunto de datos

Se minimiza el cuello de botella

Se vuelve complejo el tratamiento de interbloqueos

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Protocolo de la mayorıa:

Cada emplazamiento controla localmente sus datos

Para bloquear un dato Q replicado, hay que enviar mensajes amas de la mitad de las replicas solicitando el bloqueo.

Utiliza el envio de mensajes para conceder los bloqueos

Desventaja: El tratamiento de Interbloqueos

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Protocolo Sesgado

Para los bloqueos compartidos solo solicita el bloqueo a unemplazamiento que contenga una replica de Q

Para los bloqueos exclusivos, se solicita el bloqueo a TODOSlos gestores con replicas de Q

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Copia principal:

Se selecciona una copia principal de Q

Donde reside dicha copia es el emplazamiento principal de Q

Dicho emplazamiento es el que concede los bloqueos sobre Q

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Tratamiento de Interbloqueos

Con la construccion de grafos locales no es suficiente paradeterminar un interbloqueo. Por ejemplo:

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Enfoque Centralizado

Construir un grafo centralizado cuando:

Se modifique un arco en un grafo localPeriodicamenteSiempre que se requiere correr el algoritmo de deteccion

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Esquema Distribuido

Construccion de grafos parciales en cada emplazamiento

Deteccion de ciclos en los grafos parciales

Los grafos locales se van extendiendo a medida que elemplazamiento participa en transacciones globales

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Arquitecturas Heterogeneas

Reunion de diferentes bases de datos con diferentesarquitecturas, tipos, SW HW, etc

Deben presentarse esquemas de traduccion entre una instanciay otra

Debe existir una capa de SW adicional que integre todas lasinstancias de manera logica mas no fısica

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

Recommended