Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... ·...
Transcript of Bases de Datos Distribuidas - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/... ·...
Bases de Datos Distribuidas
Carlos A. Olarte ([email protected])BDII
Carlos A. Olarte ([email protected]) 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 ([email protected]) 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 ([email protected]) 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 ([email protected]) 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 ([email protected]) BDII Bases de Datos Distribuidas
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
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
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
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
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
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
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
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
... 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
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
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
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
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
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
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
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
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
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
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
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
...continuacion
Carlos A. Olarte ([email protected]) 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 ([email protected]) 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 ([email protected]) 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 ([email protected]) 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 ([email protected]) 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 ([email protected]) 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 ([email protected]) 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 ([email protected]) 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 ([email protected]) 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 ([email protected]) 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 ([email protected]) 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 ([email protected]) 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 ([email protected]) BDII Bases de Datos Distribuidas