Está en la página 1de 38

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 varios
emplazamientos
Fragmentacion: Division de los datos en varios
emplazamientos
Esquema mixto: Fragmentar las relaciones y crear replicas de
los 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 realizar
consultas sobre su replica de datos
Desventajas:
Sobrecarga en las actualizaciones: Mantenimiento de la
consistencia
Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas
Fragmentacion de Datos
Los fragmentos deben poder reunirse para formar la relacion
original
Esquemas de fragmentacion:
Horizontal
Vertical
Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas
Fragmentacion Horizontal
Placa Marca Ciudad
ABC123 MAZDA CALI
BDE498 MAZDA PALMIRA
RTE164 CHEVR. CALI
RTW452 RENAULT PALMIRA
Placa Marca Ciudad
ABC123 MAZDA CALI
RTE164 CHEVR. CALI
Placa Marca Ciudad
BDE498 MAZDA PALMIRA
RTW452 RENAULT PALMIRA
r
i
=

i
(r )
r =

i
r
i
Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas
Fragmentacion Vertical
Id Placa Marca Ciudad
1 ABC123 MAZDA CALI
2 BDE498 MAZDA PALMIRA
3 RTE164 CHEVR. CALI
4 RTW452 RENAULT PALMIRA
Id Placa Marca
1 ABC123 MAZDA
2 BDE498 MAZDA
3 RTE164 CHEVR.
4 RTW452 RENAULT
Id Marca Ciudad
1 ABC123 CALI
2 BDE498 PALMIRA
3 RTE164 CALI
4 RTW452 PALMIRA
Sea r (R) una relacion.
R =

i
R
i
r
i
=
R
i
(r )
r = r
1
r
2
... r
n
Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas
Esquemas Mixtos
Fragmentacion Mixta: Aplicacion de la fragmentacion
horizontal y vertical sobre una misma relacion
Replica y fragmentacion: Replicar fragmentos o fragmentar
replicas
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 los
elementos de datos
Aspectos a tener en cuenta:
Nombrado
Replicas
Fragmentacion
Ubicacion 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 botella
Una cada del servidor afecta todo el sistema
Los elementos tienen como prejos el nombre del
emplazamiento
Nombres unicos dentro del sistema
Creacion 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 ser
transparente para el usuario)
Actualizacion: Actualizar los fragmentos apropiados y TODAS
las replicas de los elementos modicados
Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas
Procesamiento de Consultas
Aspectos a tener en cuenta:
N umero 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 r
1
=
1
(r ) y r
2
=
2
(r ) y se desea calcular
3
(r ). y
solo se dispone de los fragmentos y no de la relacion original:

3
(r ) =
3
(r
1
)
3
(r
2
)
Sea r ,t y w relaciones que se almacenan en E
1
, E
2
y E
3
respectivamente, como calcular r t w en E
1
? cual es el
costo 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 E
1
y E
2
respectivamente. Se puede calcular r s de la siguiente manera:
1
Calcular temp
1

RT
(r ) en E
1
2
Enviar temp
1
a E
2
3
Calcular temp
2
t temp
1
4
Enviar temp
2
a E
1
5
Procesar r temp
2
Ventajas? Desventajas?
r temp
2
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 del
emplazamiento quien inicia la transaccion
Transacciones Remotas: Utilizan recursos de un
emplazamiento remoto
Transacciones Distribuidas: Utilizan recursos locales y
recursos de emplazamientos remotos
Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas
Como coordinar las Transacciones
Gestor Trans.: Registro
historico, control de
concurrencia, etc
Coordinador de transacciones:
Coordina la ejecucion de
transacciones 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 enva las
instrucciones necesarias a cada emplazamiento
Coordina la terminacion (compromiso o retroceso) de la
transaccion
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 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 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 catalogo
para que no las refresque mientras se encuentran oine
Abortar las transacciones activas en el emplazamiento que
fallo 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. eleccion del coordinador)
Cuando el nodo se recupere:
Refrescar las replicas y fragmentos modicados
Retroceder las transacciones abortadas
Rehacer las transacciones comprometidas
Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas
Protocolo de Compromiso de 2 Fases
Cada accion debe
registrarse en el registro
historico con nes de
recuperacion
O todos los
emplazamientos se
comprometen o todos se
abortan (atomicidad
global)
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 un
abort
Si el fallo es posterior al mensaje de preparacion se continua el
PC2F
Cuando el emplazamiento se recupera debe:
Si existe t
i
comprometida en el R.H , rehacer (t
i
)
Si existe t
i
abortada en el R.H , deshacer (t
i
)
Si existe t
i
preparada en el R.H , consultar a C
i
el destino
de la transaccion. Si C
i
no responde consultar a los otros
emplazamiento y posponer la decision hasta encontrar una
respuesta de alg un nodo.
Si el registro no contiene las anteriores, debe abortar (nunca
hubo respuesta)
Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas
Que pasa si falla el coordinador?
Si un emplazamiento contiene t
i
comprometida o
t
i
abortada se compromete o aborta la transaccion
Si ning un emplazamiento contiene t
i
preparada se aborta T
(fallo antes de tomar la decision)
Si ning un emplazamiento tiene t
i
comprometida o
t
i
abortada, t
i
espera hasta la recuperacion de C
i
y se
mantienen 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 en
los nodos posibles y en los otros cuando se restablezca el
canal 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 el
procedimiento
Cuando se recupera si en el R.H hay un t
i
abortada o
t
i
comprometida se deshace o rehace la transaccion
Si hay t
i
preparada se pregunta a C
i
el estado de t
i
para
precomprometer o abortar
Si hay t
i
precomprometida se consulta a C
i
el estado de t
i
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 C
i
suba, actuara como
participante
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 C
i
fallo
1
Seleccionar un nuevo coordinador
2
C2 (el nuevo coordinador) pregunta a los emplazamientos el
estado de t
i
3
Cada emplazamiento determina el estado de t
i
4
Se decide el estado de T:
Si existe un t
i
comprometida, t
i
se compromete
Si existe un t
i
abortada ,t
i
se aborta
Si existe t
i
precomprometida ,se activa el 3FC
De lo contrario se aborta t
i
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 con
toda la informacion necesaria para suplir las funciones de C
i
Eleccion:
Enumerar los emplazamientos y tratar de seleccionar el
emplazamiento con n umero mayor
Algoritmo luchador: Proponerse como coordinador e informar
a 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 mayora:
Cada emplazamiento controla localmente sus datos
Para bloquear un dato Q replicado, hay que enviar mensajes a
mas 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 un
emplazamiento que contenga una replica de Q
Para los bloqueos exclusivos, se solicita el bloqueo a TODOS
los 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 suciente para
determinar un interbloqueo. Por ejemplo:
Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas
Enfoque Centralizado
Construir un grafo centralizado cuando:
Se modique un arco en un grafo local
Periodicamente
Siempre 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 el
emplazamiento 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 diferentes
arquitecturas, tipos, SW HW, etc
Deben presentarse esquemas de traduccion entre una instancia
y otra
Debe existir una capa de SW adicional que integre todas las
instancias de manera logica mas no fsica
Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Bases de Datos Distribuidas

También podría gustarte