Bases de Datos Distribuidas

Anuncio
Bases de Datos Distribuidas
Carlos A. Olarte ([email protected])
BDII
Carlos A. Olarte ([email protected]) BDII
Bases de Datos Distribuidas
Contenido
1
Introducción
2
Fragmentación de Datos
3
Transparencia de Red
4
Transacciones Distribuidas
5
Control de Concurrencia
Carlos A. Olarte ([email protected]) BDII
Bases de Datos Distribuidas
Introducción
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
Cómo almacenar los datos?
Replicación: Copias idénticas de la relación en varios
emplazamientos
Fragmentación: División de los datos en varios
emplazamientos
Esquema mixto: Fragmentar las relaciones y crear réplicas de
los fragmentos
Carlos A. Olarte ([email protected]) BDII
Bases de Datos Distribuidas
Replicación
Ventajas:
Disponibilidad: Tolerancia a fallos
Aumento del paralelismo: Cada emplazamiento puede realizar
consultas sobre su réplica de datos
Desventajas:
Sobrecarga en las actualizaciones: Mantenimiento de la
consistencia
Carlos A. Olarte ([email protected]) BDII
Bases de Datos Distribuidas
Fragmentación de Datos
Los fragmentos deben poder reunirse para formar la relación
original
Esquemas de fragmentación:
Horizontal
Vertical
Carlos A. Olarte ([email protected]) BDII
Bases de Datos Distribuidas
Fragmentación Horizontal
Placa
ABC123
BDE498
RTE164
RTW452
Marca
MAZDA
MAZDA
CHEVR.
RENAULT
Ciudad
CALI
PALMIRA
CALI
PALMIRA
Placa
ABC123
RTE164
Marca
MAZDA
CHEVR.
Ciudad
CALI
CALI
Placa
BDE498
RTW452
Marca
MAZDA
RENAULT
Ciudad
PALMIRA
PALMIRA
ri = σθi (r )
S
r = i ri
Carlos A. Olarte ([email protected]) BDII
Bases de Datos Distribuidas
Fragmentación Vertical
Id
1
2
3
4
Placa
ABC123
BDE498
RTE164
RTW452
Marca
MAZDA
MAZDA
CHEVR.
RENAULT
Ciudad
CALI
PALMIRA
CALI
PALMIRA
Id
1
2
3
4
Placa
ABC123
BDE498
RTE164
RTW452
Marca
MAZDA
MAZDA
CHEVR.
RENAULT
Id
1
2
3
4
Marca
ABC123
BDE498
RTE164
RTW452
Ciudad
CALI
PALMIRA
CALI
PALMIRA
Sea r (R) una relación.
S
R = i Ri
ri = πRi (r )
r = r1 ./ r2 ./ ... ./ rn
Carlos A. Olarte ([email protected]) BDII
Bases de Datos Distribuidas
Esquemas Mixtos
Fragmentación Mixta: Aplicación de la fragmentación
horizontal y vertical sobre una misma relación
Replica y fragmentación: Replicar fragmentos o fragmentar
réplicas
Carlos A. Olarte ([email protected]) BDII
Bases de Datos Distribuidas
Transparencia de Red
Los usuarios deben ignorar los detalles de la distribución de los
elementos de datos
Aspectos a tener en cuenta:
Nombrado
Réplicas
Fragmentación
Ubicación de los fragmentos y réplicas
Carlos A. Olarte ([email protected]) BDII
Bases de Datos Distribuidas
Nombrado de los Elementos
Un solo servidor (centralizado) de nombres:
Cuello de botella
Una caı́da del servidor afecta todo el sistema
Los elementos tienen como prefijos el nombre del
emplazamiento
Nombres únicos dentro del sistema
Creación de alias por facilidad
Carlos A. Olarte ([email protected]) BDII
Bases de Datos Distribuidas
Problemas de lectura y escritura
Lectura: Conocer que réplica o fragmento utilizar (debe ser
transparente para el usuario)
Actualización: Actualizar los fragmentos apropiados y TODAS
las réplicas de los elementos modificados
Carlos A. Olarte ([email protected]) BDII
Bases de Datos Distribuidas
Procesamiento de Consultas
Aspectos a tener en cuenta:
Número de accesos a disco
Costo de transmisión 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 ). y
solo se dispone de los fragmentos y no de la relación 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 el
costo de cada alternativa?
Carlos A. Olarte ([email protected]) BDII
Bases de Datos Distribuidas
Estrategia por semi-reunión
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 del
emplazamiento quien inicia la transacción
Transacciones Remotas: Utilizan recursos de un
emplazamiento remoto
Transacciones Distribuidas: Utilizan recursos locales y
recursos de emplazamientos remotos
Carlos A. Olarte ([email protected]) BDII
Bases de Datos Distribuidas
Cómo coordinar las Transacciones
Gestor Trans.: Registro
histórico, control de
concurrencia, etc
Coordinador de transacciones:
Coordina la ejecución de
transacciones globales
(distribuidas)
Carlos A. Olarte ([email protected]) BDII
Bases de Datos Distribuidas
Coordinador de Transacciones
El coordinador de transacciones tiene a cargo:
Iniciar la ejecución de una transacción
Divide la transacción en subtransacciones y envı́a las
instrucciones necesarias a cada emplazamiento
Coordina la terminación (compromiso o retroceso) de la
transacción
Carlos A. Olarte ([email protected]) BDII
Bases de Datos Distribuidas
Que puede fallar en una T. Global?
Un Emplazamiento: Disco, SO, SGBD
Pérdida en los mensajes: Debe apoyarse en los protocolos de
red (Normalmente se retransmiten los mensajes)
Particionamiento de la red: Un nodo o conjunto de ellos se
aislan de la red (fallo en los enlaces de comunicación)
Carlos A. Olarte ([email protected]) BDII
Bases de Datos Distribuidas
Que hacer en caso de falla?
Si el emplazamiento mantiene réplicas actualizar el catalogo
para que no las refresque mientras se encuentran offline
Abortar las transacciones activas en el emplazamiento que
falló para liberar los bloqueos en los otros emplazamientos (si
no se encuentran en proceso de compromiso)
Si el emplazamiento averiado es el servidor central, elegir otro
servidor (alg. elección del coordinador)
Cuando el nodo se recupere:
Refrescar las réplicas y fragmentos modificados
Retroceder las transacciones abortadas
Rehacer las transacciones comprometidas
Carlos A. Olarte ([email protected]) BDII
Bases de Datos Distribuidas
Protocolo de Compromiso de 2 Fases
Cada acción debe
registrarse en el registro
histórico con fines de
recuperación
O todos los
emplazamientos se
comprometen o todos se
abortan (atomicidad
global)
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 preparación, se asume un
abort
Si el fallo es posterior al mensaje de preparación se continua el
PC2F
Cuando el emplazamiento se recupera debe:
Si existe hti comprometidai en el R.H , rehacer (ti )
Si existe hti abortadai en el R.H , deshacer (ti )
Si existe hti preparadai en el R.H , consultar a Ci el destino
de la transacción. Si Ci no responde consultar a los otros
emplazamiento y posponer la decisión hasta encontrar una
respuesta de algún nodo.
Si el registro no contiene las anteriores, debe abortar (nunca
hubo respuesta)
Carlos A. Olarte ([email protected]) BDII
Bases de Datos Distribuidas
Qué pasa si falla el coordinador?
Si un emplazamiento contiene hti comprometidai o
hti abortadai se compromete o aborta la transacción
Si ningún emplazamiento contiene hti preparadai se aborta T
(fallo antes de tomar la decisión)
Si ningún emplazamiento tiene hti comprometidai o
hti abortadai, ti espera hasta la recuperación de Ci y se
mantienen los bloqueos hasta que esto suceda
Carlos A. Olarte ([email protected]) BDII
Bases de Datos Distribuidas
Qué pasa si hay división de la red?
Si todos están en la misma partición no hay problema
Si pertenecen a dos particiones, los emplazamientos
“asumirán” que los otros han fallado y se ejecuta el PC2F en
los nodos posibles y en los otros cuando se restablezca el
canal de comunicación
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 máximo k emplazamientos pueden fallar
Ventajas
No bloquea los recursos ası́ falle el coordinador
Carlos A. Olarte ([email protected]) BDII
Bases de Datos Distribuidas
...continuación
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 el
procedimiento
Cuando se recupera si en el R.H hay un hti abortadai o
hti comprometidai se deshace o rehace la transacción
Si hay hti preparadai se pregunta a Ci el estado de ti para
precomprometer o abortar
Si hay hti precomprometidai se consulta a Ci el estado de ti
para comprometer, abortar o reactivar el 3FC
Fallo del coordinador:
Si no hay respuesta del coordinador, se ejecuta el protocolo de
fallo del coordinador y cuando Ci suba, actuará como
participante
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 falló
1
Seleccionar un nuevo coordinador
2
C2 (el nuevo coordinador) pregunta a los emplazamientos el
estado de ti
3
Cada emplazamiento determina el estado de ti
Se decide el estado de T:
4
Si existe un hti comprometidai, ti se compromete
Si existe un hti abortadai ,ti se aborta
Si existe hti precomprometidai ,se activa el 3FC
De lo contrario se aborta ti
Carlos A. Olarte ([email protected]) BDII
Bases de Datos Distribuidas
Algoritmos de elección
Decide quien es el nuevo coordinador:
Copia de Seguridad: Tener un coordinador de backup con
toda la información necesaria para suplir las funciones de Ci
Elección:
Enumerar los emplazamientos y tratar de seleccionar el
emplazamiento con número mayor
Algoritmo luchador: Proponerse como coordinador e informar
a 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
Implementación sencilla
Fácil detección 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
...continuación
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 a
mas de la mitad de las réplicas solicitando el bloqueo.
Utiliza el envió 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 un
emplazamiento que contenga una réplica de Q
Para los bloqueos exclusivos, se solicita el bloqueo a TODOS
los gestores con réplicas 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 construcción de grafos locales no es suficiente para
determinar 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 local
Periódicamente
Siempre que se requiere correr el algoritmo de detección
Carlos A. Olarte ([email protected]) BDII
Bases de Datos Distribuidas
Esquema Distribuido
Construcción de grafos parciales en cada emplazamiento
Detección de ciclos en los grafos parciales
Los grafos locales se van extendiendo a medida que el
emplazamiento participa en transacciones globales
Carlos A. Olarte ([email protected]) BDII
Bases de Datos Distribuidas
Arquitecturas Heterogéneas
Reunión de diferentes bases de datos con diferentes
arquitecturas, tipos, SW HW, etc
Deben presentarse esquemas de traducción entre una instancia
y otra
Debe existir una capa de SW adicional que integre todas las
instancias de manera lógica mas no fı́sica
Carlos A. Olarte ([email protected]) BDII
Bases de Datos Distribuidas
Descargar