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

38
Bases de Datos Distribuidas Carlos A. Olarte ([email protected]) BDII Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas

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

Page 1: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

Bases de Datos Distribuidas

Carlos A. Olarte ([email protected])BDII

Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas

Page 2: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

Contenido

1 Introduccion

2 Fragmentacion de Datos

3 Transparencia de Red

4 Transacciones Distribuidas

5 Control de Concurrencia

Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas

Page 3: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

Introduccion

Por que distribuir los datos?

Ventajas frente a un sistema centralizado

Problemas de los datos distribuidos

Aplicaciones Ejemplo

Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas

Page 4: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

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 ([email protected]) BDII Bases de Datos Distribuidas

Page 5: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

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 ([email protected]) BDII Bases de Datos Distribuidas

Page 6: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

Fragmentacion de Datos

Los fragmentos deben poder reunirse para formar la relacionoriginal

Esquemas de fragmentacion:

HorizontalVertical

Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas

Page 7: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

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 ([email protected]) BDII Bases de Datos Distribuidas

Page 8: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

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 ([email protected]) BDII Bases de Datos Distribuidas

Page 9: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

Esquemas Mixtos

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

Replica y fragmentacion: Replicar fragmentos o fragmentarreplicas

Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas

Page 10: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

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 ([email protected]) BDII Bases de Datos Distribuidas

Page 11: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

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 ([email protected]) BDII Bases de Datos Distribuidas

Page 12: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

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 ([email protected]) BDII Bases de Datos Distribuidas

Page 13: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

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 ([email protected]) BDII Bases de Datos Distribuidas

Page 14: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

... 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 ([email protected]) BDII Bases de Datos Distribuidas

Page 15: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

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 ([email protected]) BDII Bases de Datos Distribuidas

Page 16: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

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 ([email protected]) BDII Bases de Datos Distribuidas

Page 17: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

Como coordinar las Transacciones

Gestor Trans.: Registrohistorico, control deconcurrencia, etc

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

Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas

Page 18: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

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 ([email protected]) BDII Bases de Datos Distribuidas

Page 19: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

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 ([email protected]) BDII Bases de Datos Distribuidas

Page 20: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

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 ([email protected]) BDII Bases de Datos Distribuidas

Page 21: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

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 ([email protected]) BDII Bases de Datos Distribuidas

Page 22: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

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 ([email protected]) BDII Bases de Datos Distribuidas

Page 23: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

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 ([email protected]) BDII Bases de Datos Distribuidas

Page 24: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

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 ([email protected]) BDII Bases de Datos Distribuidas

Page 25: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

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 ([email protected]) BDII Bases de Datos Distribuidas

Page 26: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

...continuacion

Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas

Page 27: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

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 ([email protected]) BDII Bases de Datos Distribuidas

Page 28: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

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 ([email protected]) BDII Bases de Datos Distribuidas

Page 29: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

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 ([email protected]) BDII Bases de Datos Distribuidas

Page 30: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

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 ([email protected]) BDII Bases de Datos Distribuidas

Page 31: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

...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 ([email protected]) BDII Bases de Datos Distribuidas

Page 32: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

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 ([email protected]) BDII Bases de Datos Distribuidas

Page 33: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

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 ([email protected]) BDII Bases de Datos Distribuidas

Page 34: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

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 ([email protected]) BDII Bases de Datos Distribuidas

Page 35: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

Tratamiento de Interbloqueos

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

Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas

Page 36: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

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 ([email protected]) BDII Bases de Datos Distribuidas

Page 37: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

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 ([email protected]) BDII Bases de Datos Distribuidas

Page 38: Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... · Replica y fragmentaci´on: Replicar fragmentos o fragmentar r´eplicas Carlos A.

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 ([email protected]) BDII Bases de Datos Distribuidas