Está en la página 1de 27

1

Bases de Datos
Distribuidas
Integrantes:
Maria A. Ascanio. M
Jos A. Gonzlez R.
Hctor. E. Cruz F.
Agenda
Bases de Datos Distribuidas
ANTECEDENTES
Las bases de datos distribuidas ofrecen
diversas ventajas a los diseadores y usuarios
de bases de datos.
Entre las ms importantes se encuentra la
transparencia en el acceso y localizacin de
informacin.
Sin embargo, el diseo y administracin de
bases de datos distribuidas constituye un gran
desafo que incorpora problemas no
encontrados en bases de datos centralizadas.
ANTECEDENTES
INTRODUCCIN
BASES DE DATOS DISTRIBUIDAS
TIPOS DE TRANSACCIONES
DESVENTAJAS DE LAS BASES DE
DATOS DISTRIBUDAS
CONDICIONES DESEABLES EN
UNA BASE DE DATOS
TIPOS DE BASES DE DATOS
DISTRIBUDAS
ARQUITECTURAS DISTRIBUDAS
DEL DBMS
Arquitectura Cliente-Servidor
Arquitectura de Servidores
Cooperantes
De una Va Centralizada
ALMACENAR DATOS EN UN DBMS
DISTRIBUIDO
Fragmentacin
Replicacin
MANEJO DEL CATLOGO
DISTRIBUIDO
Nombramiento de objetos
2
Agenda
Bases de Datos Distribuidas
INTRODUCCION
Un rea en la cual las soluciones estn
integrando tecnologa con nuevas arquitecturas
o formas de hacer las cosas es, sin lugar a
dudas, el rea de los sistemas distribuidos de
informacin.
Ellos se refieren al manejo de datos
almacenados en facilidades de cmputo
localizadas en muchos sitios ligados a travs
de una red de comunicaciones. Un caso
especfico de estos sistemas distribuidos es lo
que se conoce como bases de datos
distribuidas.
ANTECEDENTES
INTRODUCCIN
BASES DE DATOS DISTRIBUIDAS
TIPOS DE TRANSACCIONES
DESVENTAJAS DE LAS BASES DE
DATOS DISTRIBUDAS
CONDICIONES DESEABLES EN
UNA BASE DE DATOS
TIPOS DE BASES DE DATOS
DISTRIBUDAS
ARQUITECTURAS DISTRIBUDAS
DEL DBMS
Arquitectura Cliente-Servidor
Arquitectura de Servidores
Cooperantes
De una Va Centralizada
ALMACENAR DATOS EN UN DBMS
DISTRIBUIDO
Fragmentacin
Replicacin
MANEJO DEL CATLOGO
DISTRIBUIDO
Nombramiento de objetos
Agenda
Bases de Datos Distribuidas
BASES DE DATOS DISTRIBUIDAS
Los datos en un sistema de la base de datos
distribuida se almacenan a travs de varios
sitios, y cada sitio es manejado tpicamente por
un DBMS que pueda funcionar independiente
de los otros sitios.
La vista clsica de un sistema de la base de
datos distribuida debe mostrar los datos
distribuidos de forma transparente, dar la
impresin de que los datos son locales
ANTECEDENTES
INTRODUCCIN
BASES DE DATOS DISTRIBUIDAS
TIPOS DE TRANSACCIONES
DESVENTAJAS DE LAS BASES DE
DATOS DISTRIBUDAS
CONDICIONES DESEABLES EN
UNA BASE DE DATOS
TIPOS DE BASES DE DATOS
DISTRIBUDAS
ARQUITECTURAS DISTRIBUDAS
DEL DBMS
Arquitectura Cliente-Servidor
Arquitectura de Servidores
Cooperantes
De una Va Centralizada
ALMACENAR DATOS EN UN DBMS
DISTRIBUIDO
Fragmentacin
Replicacin
MANEJO DEL CATLOGO
DISTRIBUIDO
Nombramiento de objetos
3
Agenda
Bases de Datos Distribuidas
BASES DE DATOS DISTRIBUIDAS
Lo que motiva a la distribucin de la data es:
Incrementa la Disponibilidad
Acceso Distribuido a los Datos
Anlisis de los Datos Distribuidos
Autonoma
ANTECEDENTES
INTRODUCCIN
BASES DE DATOS DISTRIBUIDAS
TIPOS DE TRANSACCIONES
DESVENTAJAS DE LAS BASES DE
DATOS DISTRIBUDAS
CONDICIONES DESEABLES EN
UNA BASE DE DATOS
TIPOS DE BASES DE DATOS
DISTRIBUDAS
ARQUITECTURAS DISTRIBUDAS
DEL DBMS
Arquitectura Cliente-Servidor
Arquitectura de Servidores
Cooperantes
De una Va Centralizada
ALMACENAR DATOS EN UN DBMS
DISTRIBUIDO
Fragmentacin
Replicacin
MANEJO DEL CATLOGO
DISTRIBUIDO
Nombramiento de objetos
Agenda
Bases de Datos Distribuidas
TIPOS DE TRANSACCIONES
Hay dos tipos de transacciones:
Locales: Es aquella que accede a los datos
del nico sitio donde se inici la transaccin.
Globales: Es aquella que accede a los
datos situados en uno o mas sitios diferentes
de aquel en que se inici la transaccin
ANTECEDENTES
INTRODUCCIN
BASES DE DATOS DISTRIBUIDAS
TIPOS DE TRANSACCIONES
DESVENTAJAS DE LAS BASES DE
DATOS DISTRIBUDAS
CONDICIONES DESEABLES EN
UNA BASE DE DATOS
TIPOS DE BASES DE DATOS
DISTRIBUDAS
ARQUITECTURAS DISTRIBUDAS
DEL DBMS
Arquitectura Cliente-Servidor
Arquitectura de Servidores
Cooperantes
De una Va Centralizada
ALMACENAR DATOS EN UN DBMS
DISTRIBUIDO
Fragmentacin
Replicacin
MANEJO DEL CATLOGO
DISTRIBUIDO
Nombramiento de objetos
4
Agenda
Bases de Datos Distribuidas
DESVENTAJAS DE LAS BDs DISTRIBUIDAS
Coste de Desarrollo del Software
Mayor Probabilidad de Errores
Mayor Sobrecarga del Procesamiento
ANTECEDENTES
INTRODUCCIN
BASES DE DATOS DISTRIBUIDAS
TIPOS DE TRANSACCIONES
DESVENTAJAS DE LAS BASES DE
DATOS DISTRIBUDAS
CONDICIONES DESEABLES EN
UNA BASE DE DATOS
TIPOS DE BASES DE DATOS
DISTRIBUDAS
ARQUITECTURAS DISTRIBUDAS
DEL DBMS
Arquitectura Cliente-Servidor
Arquitectura de Servidores
Cooperantes
De una Va Centralizada
ALMACENAR DATOS EN UN DBMS
DISTRIBUIDO
Fragmentacin
Replicacin
MANEJO DEL CATLOGO
DISTRIBUIDO
Nombramiento de objetos
Agenda
Bases de Datos Distribuidas
CONDICIONES DESEABLES EN UNA BD
Particularmente, las caractersticas
siguientes se consideran deseables.
Independencia de datos distribuida
Los usuarios deberan ser capaces de
solicitar queries sin especificar donde estn
situadas las relaciones, ya sean sus copias o
fragmentos, a las que hizo referencia.
Atomicidad de una Transaccin
distribuida:
Los usuarios deberan ser capaces de
escribir transacciones que accedan y actualicen
datos en muchos sitios, las mismas tienen que
seguir siendo atmicas, sino llevaran a la BD
distribuida a un estado inconsistente
ANTECEDENTES
INTRODUCCIN
BASES DE DATOS DISTRIBUIDAS
TIPOS DE TRANSACCIONES
DESVENTAJAS DE LAS BASES DE
DATOS DISTRIBUDAS
CONDICIONES DESEABLES EN
UNA BASE DE DATOS
TIPOS DE BASES DE DATOS
DISTRIBUDAS
ARQUITECTURAS DISTRIBUDAS
DEL DBMS
Arquitectura Cliente-Servidor
Arquitectura de Servidores
Cooperantes
De una Va Centralizada
ALMACENAR DATOS EN UN DBMS
DISTRIBUIDO
Fragmentacin
Replicacin
MANEJO DEL CATLOGO
DISTRIBUIDO
Nombramiento de objetos
5
Agenda
Bases de Datos Distribuidas
ARQUITECTURAS DISTRIBUIDAS DEL DBMS
Arquitectura Cliente-Servidor
Posee uno o ms procesos clientes y
uno o ms procesos servidores, un proceso
cliente puede mandar un query a alguno de los
procesos servidores. Los clientes son
responsables de los aspectos relacionados con
la interface de usuario, mientras que los
servidores manejan los datos y ejecutan las
transacciones.
ANTECEDENTES
INTRODUCCIN
BASES DE DATOS DISTRIBUIDAS
TIPOS DE TRANSACCIONES
DESVENTAJAS DE LAS BASES DE
DATOS DISTRIBUDAS
CONDICIONES DESEABLES EN
UNA BASE DE DATOS
TIPOS DE BASES DE DATOS
DISTRIBUDAS
ARQUITECTURAS DISTRIBUDAS
DEL DBMS
Arquitectura Cliente-Servidor
Arquitectura de Servidores
Cooperantes
De una Va Centralizada
ALMACENAR DATOS EN UN DBMS
DISTRIBUIDO
Fragmentacin
Replicacin
MANEJO DEL CATLOGO
DISTRIBUIDO
Nombramiento de objetos
Agenda
Bases de Datos Distribuidas
ARQUITECTURAS DISTRIBUIDAS DEL DBMS
Arquitectura de Servidores
Cooperantes
Podemos tener una coleccin de
servidores de bases de datos, cada uno capaz
de correr transacciones sobre los datos locales,
y cooperativamente sobre datos residentes en
otro servidor.
ANTECEDENTES
INTRODUCCIN
BASES DE DATOS DISTRIBUIDAS
TIPOS DE TRANSACCIONES
DESVENTAJAS DE LAS BASES DE
DATOS DISTRIBUDAS
CONDICIONES DESEABLES EN
UNA BASE DE DATOS
TIPOS DE BASES DE DATOS
DISTRIBUDAS
ARQUITECTURAS DISTRIBUDAS
DEL DBMS
Arquitectura Cliente-Servidor
Arquitectura de Servidores
Cooperantes
De una Va Centralizada
ALMACENAR DATOS EN UN DBMS
DISTRIBUIDO
Fragmentacin
Replicacin
MANEJO DEL CATLOGO
DISTRIBUIDO
Nombramiento de objetos
6
Agenda
Bases de Datos Distribuidas
ARQUITECTURAS DISTRIBUIDAS DEL DBMS
De una Va Centralizada:
La idea es que necesitamos solo un
servidor de bases de datos capaz de manejar
queries y transacciones provenientes de
mltiples servidores.
Podemos pensar en este servidor
especial como una capa del software que
coordina la ejecucin de queries y
transacciones a travs de uno o ms servidores
de bases de datos independientes, es
usualmente llamado Middleware.
ANTECEDENTES
INTRODUCCIN
BASES DE DATOS DISTRIBUIDAS
TIPOS DE TRANSACCIONES
DESVENTAJAS DE LAS BASES DE
DATOS DISTRIBUDAS
CONDICIONES DESEABLES EN
UNA BASE DE DATOS
TIPOS DE BASES DE DATOS
DISTRIBUDAS
ARQUITECTURAS DISTRIBUDAS
DEL DBMS
Arquitectura Cliente-Servidor
Arquitectura de Servidores
Cooperantes
De una Va Centralizada
ALMACENAR DATOS EN UN DBMS
DISTRIBUIDO
Fragmentacin
Replicacin
MANEJO DEL CATLOGO
DISTRIBUIDO
Nombramiento de objetos
Agenda
Bases de Datos Distribuidas
ALMACENAR DATOS EN UN DBMS DISTRIBUIDO
Fragmentacin
Consiste en partir la relacin en
pequeas relaciones o fragmentos y almacenar
los fragmentos, posiblemente, en diferentes
sitios.
Estos fragmentos contienen suficiente
informacin como para permitir la
reconstruccin de la relacin original.
Hay dos esquemas diferentes de
fragmentacin de las relaciones:.
Fragmentacin Horizontal
Fragmentacin Vertical
ANTECEDENTES
INTRODUCCIN
BASES DE DATOS DISTRIBUIDAS
TIPOS DE TRANSACCIONES
DESVENTAJAS DE LAS BASES DE
DATOS DISTRIBUDAS
CONDICIONES DESEABLES EN
UNA BASE DE DATOS
TIPOS DE BASES DE DATOS
DISTRIBUDAS
ARQUITECTURAS DISTRIBUDAS
DEL DBMS
Arquitectura Cliente-Servidor
Arquitectura de Servidores
Cooperantes
De una Va Centralizada
ALMACENAR DATOS EN UN DBMS
DISTRIBUIDO
Fragmentacin
Replicacin
MANEJO DEL CATLOGO
DISTRIBUIDO
Nombramiento de objetos
7
Agenda
Bases de Datos Distribuidas
ALMACENAR DATOS EN UN DBMS DISTRIBUIDO
11 Maracay Manuel 53831
12 Maracay Teresa 53832
19 Valencia Carlos 53650
18 Valencia J uan 53688
18 Caracas J os 53666
Edad Ciudad Nombre EID
Fragmentacin Vertical
Fragmentacin Horizontal
T5
T4
T3
T2
T1
TID
Fragmentacin Horizontal y Vertical
ANTECEDENTES
INTRODUCCIN
BASES DE DATOS DISTRIBUIDAS
TIPOS DE TRANSACCIONES
DESVENTAJAS DE LAS BASES DE
DATOS DISTRIBUDAS
CONDICIONES DESEABLES EN
UNA BASE DE DATOS
TIPOS DE BASES DE DATOS
DISTRIBUDAS
ARQUITECTURAS DISTRIBUDAS
DEL DBMS
Arquitectura Cliente-Servidor
Arquitectura de Servidores
Cooperantes
De una Va Centralizada
ALMACENAR DATOS EN UN DBMS
DISTRIBUIDO
Fragmentacin
Replicacin
MANEJO DEL CATLOGO
DISTRIBUIDO
Nombramiento de objetos
Agenda
Bases de Datos Distribuidas
ALMACENAR DATOS EN UN DBMS DISTRIBUIDO
Replicacin
Significa que almacenamos muchas
copias de una relacin o de los fragmentos de
la misma. Una relacin entera puede estar
replicada en uno o mas sitios, y similarmente,
uno o ms fragmentos de una relacin.
Ventajas:
Evaluacin ms rpida de los queries
Incrementa la disponibilidad de los datos
Minimiza el movimiento de los datos entre
los sitios
Desventajas
Sobrecarga incrementada durante la
actualizacin
ANTECEDENTES
INTRODUCCIN
BASES DE DATOS DISTRIBUIDAS
TIPOS DE TRANSACCIONES
DESVENTAJAS DE LAS BASES DE
DATOS DISTRIBUDAS
CONDICIONES DESEABLES EN
UNA BASE DE DATOS
TIPOS DE BASES DE DATOS
DISTRIBUDAS
ARQUITECTURAS DISTRIBUDAS
DEL DBMS
Arquitectura Cliente-Servidor
Arquitectura de Servidores
Cooperantes
De una Va Centralizada
ALMACENAR DATOS EN UN DBMS
DISTRIBUIDO
Fragmentacin
Replicacin
MANEJO DEL CATLOGO
DISTRIBUIDO
Nombramiento de objetos
8
Agenda
Bases de Datos Distribuidas
ANTECEDENTES
INTRODUCCIN
BASES DE DATOS DISTRIBUIDAS
TIPOS DE TRANSACCIONES
DESVENTAJAS DE LAS BASES DE
DATOS DISTRIBUDAS
CONDICIONES DESEABLES EN
UNA BASE DE DATOS
TIPOS DE BASES DE DATOS
DISTRIBUDAS
ARQUITECTURAS DISTRIBUDAS
DEL DBMS
Arquitectura Cliente-Servidor
Arquitectura de Servidores
Cooperantes
De una Va Centralizada
ALMACENAR DATOS EN UN DBMS
DISTRIBUIDO
Fragmentacin
Replicacin
MANEJO DEL CATLOGO
DISTRIBUIDO
Nombramiento de objetos
MANEJO DEL CATLOGO DISTRIBUIDO
Nombrando Objetos
Si una relacin es fragmentada y replicada, se
debe tener un identificador nico por cada rplica de
cada fragmento.
La solucin a esto es usar nombres con varios
campos: El 1er. campo sera el nombre local
(asignado localmente en el sitio donde fue creada la
relacin), y El 2do. Campo el sitio de origen
(identifica al sitio donde la relacin fue creada)
Estos 2 campos identifican nicamente a la
relacin y llamamos al conjunto nombre global de
la relacin.
Para identificar una rplica o un fragmento de
una relacin, usamos el nombre global de la relacin
y le aadimos el id rplica (identificador de la
rplica). Se le llama nombre global de la rplica.
Agenda
Bases de Datos Distribuidas
MANEJO DEL CATLOGO
DISTRIBUIDO
Estructura Del Catlogo
Independencia De
Datos Distribuida
PROCESAMIENTO EN QUERY
DISTRIBUIDO
QUERIES NONJOIN EN UN DBMS
DISTRIBUIDO
JOINS EN UNA DBMS DISTRIBUIDA
Leer lo Necesario
Envi a un sitio
SEMIJOINS Y BLOOMJOINS
Semijoins
Bloomjoins
OPTIMIZACIN BASADA EN
COSTOS
ACTUALIZACIN DE LA DATA
DISTRIBUIDA
Replicacin sincrnica
Replicacin Asi ncrnica
MANEJO DEL CATLOGO DISTRIBUIDO
Estructura del Catlogo (describe toda la
data de cada sitio):
Un sistema de catlogo centralizado
puede ser vulnerable a fallas ocurridas en el
sitio que lo contiene. Una alternativa es
mantener una copia del mismo en cada sitio,
aunque esto compromete la autonoma del
sitio, ya que cada cambio realizado a dicho
catlogo debe ser propagado a todos los otros
sitios.
Otra solucin, que preserva la autonoma
local y no es vulnerable a fallas en un solo sitio,
es que cada sitio mantenga un catlogo local
que describa todas las copias de la data
almacenada en el sitio.
9
Agenda
Bases de Datos Distribuidas
MANEJO DEL CATLOGO DISTRIBUIDO
Independencia de la Data Distribuida
Significa que el usuario debera ser capaz
de escribir un query sin importarle como la
relacin esta fragmentada o replicada, es decir,
esto debe ser transparenteal usuario.
En realidad es responsabilidad del DBMS
procesar la relacin como se necesite,
(localizando copias convenientes de
fragmentos, ensamblando los fragmentos
verticales, y tomando la unin de fragmentos
horizontales)
MANEJO DEL CATLOGO
DISTRIBUIDO
Estructura Del Catlogo
Independencia De
Datos Distribuida
PROCESAMIENTO EN QUERY
DISTRIBUIDO
QUERIES NONJOIN EN UN DBMS
DISTRIBUIDO
JOINS EN UNA DBMS DISTRIBUIDA
Leer lo Necesario
Envi a un sitio
SEMIJOINS Y BLOOMJOINS
Semijoins
Bloomjoins
OPTIMIZACIN BASADA EN
COSTOS
ACTUALIZACIN DE LA DATA
DISTRIBUIDA
Replicacin sincrnica
Replicacin Asi ncrnica
Agenda
Bases de Datos Distribuidas
Procesamiento en Query Distribuido
Consideremos las siguientes relaciones:
Marinero (mid, mnombre, promedio, edad)
Reservacin: (mid, bid, da, rnombre)
Usaremos lo anterior, para estimar el costo de
una estrategia de evaluacin, mas el numero de
I/Os de pgina, tambin debemos contar el nmero
de pginas mandadas de un sitio a otro, ya que la
comunicacin implica un costo significativo del costo
total en un sistema de BD distribuida. Aadiremos el
costo de trasladar las tuplas resultantes del sitio
donde se realiz el Query al sitio donde se
ensamblar el resultado total.
MANEJO DEL CATLOGO
DISTRIBUIDO
Estructura Del Catlogo
Independencia De
Datos Distribuida
PROCESAMIENTO EN QUERY
DISTRIBUIDO
QUERIES NONJOIN EN UN DBMS
DISTRIBUIDO
JOINS EN UNA DBMS DISTRIBUIDA
Leer lo Necesario
Envi a un sitio
SEMIJOINS Y BLOOMJOINS
Semijoins
Bloomjoins
OPTIMIZACIN BASADA EN
COSTOS
ACTUALIZACIN DE LA DATA
DISTRIBUIDA
Replicacin sincrnica
Replicacin Asi ncrnica
10
Agenda
Bases de Datos Distribuidas
Procesamiento en Query Distribuido
Se asumir la siguiente notacin:
Td: Tiempo que toma leer una pgina del disco.
Ts: Tiempo que toma trasladar una pagina.
MANEJO DEL CATLOGO
DISTRIBUIDO
Estructura Del Catlogo
Independencia De
Datos Distribuida
PROCESAMIENTO EN QUERY
DISTRIBUIDO
QUERIES NONJOIN EN UN DBMS
DISTRIBUIDO
JOINS EN UNA DBMS DISTRIBUIDA
Leer lo Necesario
Envi a un sitio
SEMIJOINS Y BLOOMJOINS
Semijoins
Bloomjoins
OPTIMIZACIN BASADA EN
COSTOS
ACTUALIZACIN DE LA DATA
DISTRIBUIDA
Replicacin sincrnica
Replicacin Asi ncrnica
Agenda
Bases de Datos Distribuidas
Queries Nonjoin en un DBMS Distribuido
Incluso simples operaciones como bsqueda,
seleccin, y proyeccin en una relacin, son
afectadas por la fragmentacin y duplicacin.
Consideremos el siguiente Query:
SELECT S.edad
FROM Marinero S
WHERE S.promedio >3 and S.promedio <7
Suponiendo que la relacin marinero esta
fragmentada horizontalmente, con todas las tuplas
<5 en Shangai, y todas las tuplas >=5 en Tokio.
MANEJO DEL CATLOGO
DISTRIBUIDO
Estructura Del Catlogo
Independencia De
Datos Distribuida
PROCESAMIENTO EN QUERY
DISTRIBUIDO
QUERIES NONJOIN EN UN DBMS
DISTRIBUIDO
JOINS EN UNA DBMS DISTRIBUIDA
Leer lo Necesario
Envi a un sitio
SEMIJOINS Y BLOOMJOINS
Semijoins
Bloomjoins
OPTIMIZACIN BASADA EN
COSTOS
ACTUALIZACIN DE LA DATA
DISTRIBUIDA
Replicacin sincrnica
Replicacin Asi ncrnica
11
Agenda
Bases de Datos Distribuidas
Queries Nonjoin en un DBMS Distribuido
El DBMS debe responder este Query evaluando
en ambos sitios y tomando la unin de las
respuestas. Si la clausula SELECT contuvo el AVG
(S.edad), la combinacin, de las respuestas no
puede hacerse con un simple join. El DBMS debe
calcular la cuenta y suma de los valores de las
edades en los dos sitios y usar esta informacin
para calcular la edad promedio de todos los
marineros.
Por otra parte, si la clusula WHERE contena
solo la condicin S.promedio >6, por la otra parte, el
DBMS debe reconocer que este Query puede ser
respondido ejecutndolo solamente en Tokio.
MANEJO DEL CATLOGO
DISTRIBUIDO
Estructura Del Catlogo
Independencia De
Datos Distribuida
PROCESAMIENTO EN QUERY
DISTRIBUIDO
QUERIES NONJOIN EN UN DBMS
DISTRIBUIDO
JOINS EN UNA DBMS DISTRIBUIDA
Leer lo Necesario
Envi a un sitio
SEMIJOINS Y BLOOMJOINS
Semijoins
Bloomjoins
OPTIMIZACIN BASADA EN
COSTOS
ACTUALIZACIN DE LA DATA
DISTRIBUIDA
Replicacin sincrnica
Replicacin Asi ncrnica
Agenda
Bases de Datos Distribuidas
Joins en una DBMS Distribuida
Los J oins de Relaciones almacenadas en
diferentes sitios pueden ser muy costosos. Ahora
supondremos que la relacin Marinero fue
almacenada en Londres y Reservacin en Paris.
Consideraremos varias maneras para resolver:
Marinero Reservacin
MANEJO DEL CATLOGO
DISTRIBUIDO
Estructura Del Catlogo
Independencia De
Datos Distribuida
PROCESAMIENTO EN QUERY
DISTRIBUIDO
QUERIES NONJOIN EN UN DBMS
DISTRIBUIDO
JOINS EN UNA DBMS DISTRIBUIDA
Leer lo Necesario
Envi a un sitio
SEMIJOINS Y BLOOMJOINS
Semijoins
Bloomjoins
OPTIMIZACIN BASADA EN
COSTOS
ACTUALIZACIN DE LA DATA
DISTRIBUIDA
Replicacin sincrnica
Replicacin Asi ncrnica
12
Agenda
Bases de Datos Distribuidas
Leer lo Necesario
La idea principal, es traer las pginas necesarias
y almacenarlas en la cache, para terminar de
procesarlas. Podemos hacer un Page-oriented
nested loops join en Londres con marinero como la
ms externa, y por cada pgina de marinero, y leer
todas las pginas de Reservacin de Paris. Si
almacenamos las pginas ledas de Reservacin en
Londres hasta que el join este completo, estas son
ledas una sola vez.
Ahora, supondremos que las pginas de
Reservacin no pueden ser almacenadas en un
cache:
El costo es 500td para scan Marinero +(por cada
pgina de Marinero) el costo del canning y envio de
todas las de Reservacin, el cual es de 1000 (td+
ts). Por lo tanto el costo total sera: 500td +
500.000(td +ts).
MANEJO DEL CATLOGO
DISTRIBUIDO
Estructura Del Catlogo
Independencia De
Datos Distribuida
PROCESAMIENTO EN QUERY
DISTRIBUIDO
QUERIES NONJOIN EN UN DBMS
DISTRIBUIDO
JOINS EN UNA DBMS DISTRIBUIDA
Leer lo Necesario
Envi a un sitio
SEMIJOINS Y BLOOMJOINS
Semijoins
Bloomjoins
OPTIMIZACIN BASADA EN
COSTOS
ACTUALIZACIN DE LA DATA
DISTRIBUIDA
Replicacin sincrnica
Replicacin Asi ncrnica
Agenda
Bases de Datos Distribuidas
Leer lo Necesario
Adems, si el query no fue hecho desde el sitio
en Londres, debemos aadir el costo del envo del
resultado al sitio donde se realiz la consulta, lo que
depende del tamao del resultado. Debido a que
mid es una clave para Marinero, el nmero de tuplas
en el resultado es 100.000 (#tuplas n Reservacin)
y cada tupla tiene una longitud de 40 + 50 = 90
bytes, entonces hay 4000/90 =44 tuplas por pgina
en el resultado, el tamao total de ste es de
100.000/44 =2273 pginas.
El costo de enviar la respuesta a otro sitio es de
2273ts. En el caso anterior (el sitio del
query no es ni Londres ni Paris), sera ms barato
si trasladramos ambas relaciones al sitio del query
y ejecutramos el join all.
MANEJO DEL CATLOGO
DISTRIBUIDO
Estructura Del Catlogo
Independencia De
Datos Distribuida
PROCESAMIENTO EN QUERY
DISTRIBUIDO
QUERIES NONJOIN EN UN DBMS
DISTRIBUIDO
JOINS EN UNA DBMS DISTRIBUIDA
Leer lo Necesario
Envi a un sitio
SEMIJOINS Y BLOOMJOINS
Semijoins
Bloomjoins
OPTIMIZACIN BASADA EN
COSTOS
ACTUALIZACIN DE LA DATA
DISTRIBUIDA
Replicacin sincrnica
Replicacin Asi ncrnica
13
Agenda
Bases de Datos Distribuidas
Envi a un sitio
Consiste en enviar, completamente, una de las 2
relaciones al sitio donde se encuentra la otra y luego
ejecutar all el query. Podramos trasladar la relacin
Marinero de Londres a Paris y ejecutar luego el join
all, o en lugar de mover Marinero, trasladar
Reservacin a Londres y realizar el join en Londres;
otra opcin sera trasladar ambas (Marinero y
Reservacin) al sitio donde se realiz el query y
procesar el join en l.
El costo del scanning, el envo de Marinero,
guardando la relacin Marinero en Paris y
asumiendo un sort-merge join, y la ejecucin del join
en Paris es de: 500(2td +ts).
MANEJO DEL CATLOGO
DISTRIBUIDO
Estructura Del Catlogo
Independencia De
Datos Distribuida
PROCESAMIENTO EN QUERY
DISTRIBUIDO
QUERIES NONJOIN EN UN DBMS
DISTRIBUIDO
JOINS EN UNA DBMS DISTRIBUIDA
Leer lo Necesario
Envi a un sitio
SEMIJOINS Y BLOOMJOINS
Semijoins
Bloomjoins
OPTIMIZACIN BASADA EN
COSTOS
ACTUALIZACIN DE LA DATA
DISTRIBUIDA
Replicacin sincrnica
Replicacin Asi ncrnica
Agenda
Bases de Datos Distribuidas
SEMIJOINS Y BLOOMJOINS
Suponiendo que se envo Reservacin a Londres
y se ejecut el join all. Algunas tuplas de
Reservacin no haran join con ninguna tupla de
Marinero. Si de alguna manera identificamos las
tuplas de Reservacin que seguramente no van a
hacer join con ninguna de Marinero, entonces
podramos evitar enviarlas. Estas dos tcnicas
proponen reducir el nmero de tuplas a ser
trasladadas
MANEJO DEL CATLOGO
DISTRIBUIDO
Estructura Del Catlogo
Independencia De
Datos Distribuida
PROCESAMIENTO EN QUERY
DISTRIBUIDO
QUERIES NONJOIN EN UN DBMS
DISTRIBUIDO
JOINS EN UNA DBMS DISTRIBUIDA
Leer lo Necesario
Envi a un sitio
SEMIJOINS Y BLOOMJOINS
Semijoins
Bloomjoins
OPTIMIZACIN BASADA EN
COSTOS
ACTUALIZACIN DE LA DATA
DISTRIBUIDA
Replicacin sincrnica
Replicacin Asi ncrnica
14
Agenda
Bases de Datos Distribuidas
Semijoins
La idea es seguir los siguientes tres pasos:
1) En Londres, computar la proyeccin de Marinero en
el join por columnas (en este caso solo el campo mid) y
trasladarla a Paris.
2) En Paris, realizar el join natural de la proyeccin
recibida desde el primer sitio con la relacin
Reservacin. El resultado de este join es llamado la
reduccin de Reservacin con respecto a Marinero.
Solo aquella tuplas en la reduccin harn join con
las tuplas en la relacin Marinero. Trasladar la
reduccin de Reservacin a Londres es preferible
antes que la relacin completa.
3) En Londres, calcular el join de la reduccin de
Reservacin con Marinero.
El semijoin es especialmente til en conjuncin con
una seleccin aplicada a una de las relaciones.
MANEJO DEL CATLOGO
DISTRIBUIDO
Estructura Del Catlogo
Independencia De
Datos Distribuida
PROCESAMIENTO EN QUERY
DISTRIBUIDO
QUERIES NONJOIN EN UN DBMS
DISTRIBUIDO
JOINS EN UNA DBMS DISTRIBUIDA
Leer lo Necesario
Envi a un sitio
SEMIJOINS Y BLOOMJOINS
Semijoins
Bloomjoins
OPTIMIZACIN BASADA EN
COSTOS
ACTUALIZACIN DE LA DATA
DISTRIBUIDA
Replicacin sincrnica
Replicacin Asi ncrnica
Agenda
Bases de Datos Distribuidas
Bloomjoins
Es muy similar a la tcnica de Semijoin, solo que
usa un vector de bits conjuntamente con hash. En el
1er. paso no se enva la proyeccin de Marinero sino
un vector de bits. Un vector de bits de tamao k es
procesado aplicando hashing a cada tupla de
Marinero en un rango de 0 a (k - 1), colocando el bit i
a 1 algunas tupla hashes con i, y 0 de lo contrario.
En el 2do. paso, la reduccin de Reservacin es
procesada mediante el hashing de cada tupla de
Reservacin (usando el campo mid) en un rango de 0
(k-1) usando la misma funcin de hash empleada
para construir el vector de bits y desechando las
tuplas cuyo valor de i corresponda a un bit 0. El costo
de aplicar esta tcnica aplicada a Reservacin es
menor que el correspondiente a la de Semijoins; por
otra parte, el tamao de la reduccin de Reservacin
tiende a ser ms grande y el costo del envo de la
reduccin y de hacer el join con Marinero es mayor.
MANEJO DEL CATLOGO
DISTRIBUIDO
Estructura Del Catlogo
Independencia De
Datos Distribuida
PROCESAMIENTO EN QUERY
DISTRIBUIDO
QUERIES NONJOIN EN UN DBMS
DISTRIBUIDO
JOINS EN UNA DBMS DISTRIBUIDA
Leer lo Necesario
Envi a un sitio
SEMIJOINS Y BLOOMJOINS
Semijoins
Bloomjoins
OPTIMIZACIN BASADA EN
COSTOS
ACTUALIZACIN DE LA DATA
DISTRIBUIDA
Replicacin sincrnica
Replicacin Asi ncrnica
15
Agenda
Bases de Datos Distribuidas
Optimizacin Basada en Costos
Hemos visto como la distribucin de datos
pueden afectar la implementacin de operaciones
individuales, como una seleccin, adicin, etc. En
general, un query involucra severas operaciones, y
la optimizacin de esta en una BD distribuida nos
trae los siguientes retos:
*El costo de la comunicacin debe ser
considerado. Si tenemos muchas copias de una
relacin, debemos decidir cual copia usar.
*Si cada sitio corre individualmente bajo el
control de diferentes DBMS, la autonoma de cada
sitio debe ser respetada cuando se hacen planes
de queries globales.
La optimizacin de queries se hace
bsicamente como en las BD Centralizadas, claro
que hay nuevos mtodos para las operaciones (por
ejemplo: joins distribuidos).
MANEJO DEL CATLOGO
DISTRIBUIDO
Estructura Del Catlogo
Independencia De
Datos Distribuida
PROCESAMIENTO EN QUERY
DISTRIBUIDO
QUERIES NONJOIN EN UN DBMS
DISTRIBUIDO
JOINS EN UNA DBMS DISTRIBUIDA
Leer lo Necesario
Envi a un sitio
SEMIJOINS Y BLOOMJOINS
Semijoins
Bloomjoins
OPTIMIZACIN BASADA EN
COSTOS
ACTUALIZACIN DE LA DATA
DISTRIBUIDA
Replicacin sincrnica
Replicacin Asi ncrnica
Agenda
Bases de Datos Distribuidas
ACTUALIZACIN DE LA DATA DISTRIBUIDA
En relacin a las actualizaciones, igualmente las
transacciones deben continuar siendo atmicas, sin
importar que la data este fragmentada o replicada.
Hay dos maneras de actualizar las copias de una
relacin modificada:
- Replicacin sincrnica.
- Replicacin asincrnica.
MANEJO DEL CATLOGO
DISTRIBUIDO
Estructura Del Catlogo
Independencia De
Datos Distribuida
PROCESAMIENTO EN QUERY
DISTRIBUIDO
QUERIES NONJOIN EN UN DBMS
DISTRIBUIDO
JOINS EN UNA DBMS DISTRIBUIDA
Leer lo Necesario
Envi a un sitio
SEMIJOINS Y BLOOMJOINS
Semijoins
Bloomjoins
OPTIMIZACIN BASADA EN
COSTOS
ACTUALIZACIN DE LA DATA
DISTRIBUIDA
Replicacin sincrnica
Replicacin Asi ncrnica
16
Agenda
Bases de Datos Distribuidas
Replicacin sincrnica
Es cuando todas las copias de la relacin
modificada son actualizadas antes que la
transaccin que las modific haga commit. Aqu se
aplican 2 tcnicas:
- Voting (votando): Una transaccin debe escribir
la mayora de las copias para modificar un objeto y
leer al menos suficientes copias para asegurarse
que esa copia est presente.
Esta tcnica no es muy recomendada ya que en
la mayora de los casos leer un objeto
requiere leer mltiples copias, y en muchas
aplicaciones, los objetos son ledos con ms
frecuencia que actualizados, es as la eficiencia
en cuanto a lectura muy importante.
MANEJO DEL CATLOGO
DISTRIBUIDO
Estructura Del Catlogo
Independencia De
Datos Distribuida
PROCESAMIENTO EN QUERY
DISTRIBUIDO
QUERIES NONJOIN EN UN DBMS
DISTRIBUIDO
JOINS EN UNA DBMS DISTRIBUIDA
Leer lo Necesario
Envi a un sitio
SEMIJOINS Y BLOOMJOINS
Semijoins
Bloomjoins
OPTIMIZACIN BASADA EN
COSTOS
ACTUALIZACIN DE LA DATA
DISTRIBUIDA
Replicacin sincrnica
Replicacin Asi ncrnica
Agenda
Bases de Datos Distribuidas
Replicacin sincrnica
- Read-any write-all (Leer cualquiera, escribir
todas): Para leer un objeto, una transaccin puede
leer cualquier copia, pero para escribir un objeto,
sta debe escribir todas las copias. Las lecturas
son rpidas, especialmente si tenemos una copia
local, pero escribir se vuelve muy lento, en relacin
con la tcnica Voting.
Esta tcnica (read-any write-all) recomendada
cuando las lecturas son ms frecuentes que las
escrituras, y es la ms usada a la hora de
implementar la replicacin sncrona.
MANEJO DEL CATLOGO
DISTRIBUIDO
Estructura Del Catlogo
Independencia De
Datos Distribuida
PROCESAMIENTO EN QUERY
DISTRIBUIDO
QUERIES NONJOIN EN UN DBMS
DISTRIBUIDO
JOINS EN UNA DBMS DISTRIBUIDA
Leer lo Necesario
Envi a un sitio
SEMIJOINS Y BLOOMJOINS
Semijoins
Bloomjoins
OPTIMIZACIN BASADA EN
COSTOS
ACTUALIZACIN DE LA DATA
DISTRIBUIDA
Replicacin sincrnica
Replicacin Asi ncrnica
17
Agenda
Bases de Datos Distribuidas
Replicacin Asincrnica
Es la ms ampliamente usada a nivel comercial
en los DBMSs. Aqu las copias de una relacin
modificada son actualizadas solo peridicamente y
una transaccin que lea diferentes copias de la
misma relacin puede leer diferentes valores. Este
tipo de replicacin compromete la independencia de
la data distribuida.
La replicacin asncrona trae consigo un costo
significativo. Antes que una transaccin de
actualizacin pueda hacer commit, esta debe
obtener los locks sobre todas las copias
asumiendo el uso de la tcnica read-any write-all -
de la data modificada. La transaccin puede haber
mandado solicitudes de lock a sitios remotos y
esperar por los locks, pero durante este periodo ella
mantiene sus otros locks.
MANEJO DEL CATLOGO
DISTRIBUIDO
Estructura Del Catlogo
Independencia De
Datos Distribuida
PROCESAMIENTO EN QUERY
DISTRIBUIDO
QUERIES NONJOIN EN UN DBMS
DISTRIBUIDO
JOINS EN UNA DBMS DISTRIBUIDA
Leer lo Necesario
Envi a un sitio
SEMIJOINS Y BLOOMJOINS
Semijoins
Bloomjoins
OPTIMIZACIN BASADA EN
COSTOS
ACTUALIZACIN DE LA DATA
DISTRIBUIDA
Replicacin sincrnica
Replicacin Asi ncrnica
Agenda
Bases de Datos Distribuidas
Replicacin Asincrnica
Si el sitio o el enlace de comunicacin fallan, la
transaccin no puede hacer commit hasta que
todos los sitios a los cuales les ha modificado la
data se recuperen. Por todo esto, la replicacin
asncrona no es deseable e inclusive inalcanzable
en muchas situaciones. El hecho de mantener
copias con distintitos valores de una misma relacin
ocasiona la inconsistencia de los datos.
Este tipo de replicacin tiene dos formas:
- De Sitio Primario: Una copia de la relacin es
designada como copia maestra o primaria. Las
rplicas o los fragmentos de la relacin completa
pueden ser creados en otros sitios; estas seran
copias secundarias, y a diferencia de la copia
primaria; pueden no ser actualizadas.
MANEJO DEL CATLOGO
DISTRIBUIDO
Estructura Del Catlogo
Independencia De
Datos Distribuida
PROCESAMIENTO EN QUERY
DISTRIBUIDO
QUERIES NONJOIN EN UN DBMS
DISTRIBUIDO
JOINS EN UNA DBMS DISTRIBUIDA
Leer lo Necesario
Envi a un sitio
SEMIJOINS Y BLOOMJOINS
Semijoins
Bloomjoins
OPTIMIZACIN BASADA EN
COSTOS
ACTUALIZACIN DE LA DATA
DISTRIBUIDA
Replicacin sincrnica
Replicacin Asi ncrnica
18
Agenda
Bases de Datos Distribuidas
Replicacin Asincrnica
Un mecanismo comn para establecer las copias
primaria y secundaria es que los usuarios primero
registran la relacin en el sitio primario y
subsecuentemente suscriben
Un fragmento de la relacin registrada en otro
(secundario) sitio.
- Par a Par: Ms de una copia (aunque no todas)
puede ser designada como actualizables, esta es
una copia maestra. Adems para propagar los
cambios,
Una resolucin de conflicto puede ser usada para
lidiar con el hecho de hacer el cambio en los
diferentes sitios. Esta es la ms utilizada.
MANEJO DEL CATLOGO
DISTRIBUIDO
Estructura Del Catlogo
Independencia De
Datos Distribuida
PROCESAMIENTO EN QUERY
DISTRIBUIDO
QUERIES NONJOIN EN UN DBMS
DISTRIBUIDO
JOINS EN UNA DBMS DISTRIBUIDA
Leer lo Necesario
Envi a un sitio
SEMIJOINS Y BLOOMJOINS
Semijoins
Bloomjoins
OPTIMIZACIN BASADA EN
COSTOS
ACTUALIZACIN DE LA DATA
DISTRIBUIDA
Replicacin sincrnica
Replicacin Asi ncrnica
Agenda
Bases de Datos Distribuidas
TRANSACCIN DISTRIBUIDA
Las transacciones realizadas en bases de
datos distribuidas puede acceder a otros sitios,
los cuales se les llama subtransacciones.
Cuando una transaccin es remitida de un
lugar, el manejador de transacciones de ese
lugar divide la transaccin en colecciones de
subtransacciones para ejecutar en diferentes
lugares, que se ejecutara en sus respectivos
manejadores de transacciones.
TRANSACCIN DISTRIBUIDA
CONTROL DE CONCURRENCIA
DISTRIBUIDA
Centralizado
Copia Primaria
Totalmente Distribuido
Interbloqueos Distribuidos
RECUPERACIN DISTRIBUIDA
Ejecucin Normal y Protocolos
Comprometidos (Commit)
Protocolo de Dos Fases
Reinicio luego de una falla
Protocolo de Tres Fases
19
Agenda
Bases de Datos Distribuidas
CONTROL DE CONCURRENCIA
DISTRIBUIDA
El protocolo de control de concurrencia es el
encargado de determinar que objeto
almacenado utilizara un lock.
Para un ambiente distribuido existen varias
tcnicas para escoger dicho objeto y la eleccin
de una de estas tcnicas determinara la forma
de administrar los locks.
Las tcnicas a tratar son:
Centralizado
Copia Primaria
Totalmente Distribuido
TRANSACCIN DISTRIBUIDA
CONTROL DE CONCURRENCIA
DISTRIBUIDA
Centralizado
Copia Primaria
Totalmente Distribuido
Interbloqueos Distribuidos
RECUPERACIN DISTRIBUIDA
Ejecucin Normal y Protocolos
Comprometidos (Commit)
Protocolo de Dos Fases
Reinicio luego de una falla
Protocolo de Tres Fases
Agenda
Bases de Datos Distribuidas
CONTROL DE CONCURRENCIA
DISTRIBUIDA
Centralizado:
Cada sitio esta encargado de manejar los
locks para todos los objetos que lo soliciten.
TRANSACCIN DISTRIBUIDA
CONTROL DE CONCURRENCIA
DISTRIBUIDA
Centralizado
Copia Primaria
Totalmente Distribuido
Interbloqueos Distribuidos
RECUPERACIN DISTRIBUIDA
Ejecucin Normal y Protocolos
Comprometidos (Commit)
Protocolo de Dos Fases
Reinicio luego de una falla
Protocolo de Tres Fases
20
Agenda
Bases de Datos Distribuidas
CONTROL DE CONCURRENCIA
DISTRIBUIDA
Copia Primaria:
Una copia de cada objeto es designada
como copia primaria. Todas las peticiones de
locks y unlocks sobre una copia de este objeto
son procesadas por el manejador de lock en el
sitio donde la copia primaria est almacenada,
sin importar donde la copia particular solicitada
est guardada.
TRANSACCIN DISTRIBUIDA
CONTROL DE CONCURRENCIA
DISTRIBUIDA
Centralizado
Copia Primaria
Totalmente Distribuido
Interbloqueos Distribuidos
RECUPERACIN DISTRIBUIDA
Ejecucin Normal y Protocolos
Comprometidos (Commit)
Protocolo de Dos Fases
Reinicio luego de una falla
Protocolo de Tres Fases
Agenda
Bases de Datos Distribuidas
CONTROL DE CONCURRENCIA
DISTRIBUIDA
Totalmente Distribuido
Las peticiones de locks y unlocks sobre una
copia de un objeto almacenado en un sitio son
manejadas por el manejador de lock del mismo.
TRANSACCIN DISTRIBUIDA
CONTROL DE CONCURRENCIA
DISTRIBUIDA
Centralizado
Copia Primaria
Totalmente Distribuido
Interbloqueos Distribuidos
RECUPERACIN DISTRIBUIDA
Ejecucin Normal y Protocolos
Comprometidos (Commit)
Protocolo de Dos Fases
Reinicio luego de una falla
Protocolo de Tres Fases
21
Agenda
Bases de Datos Distribuidas
CONTROL DE CONCURRENCIA
DISTRIBUIDA
Interbloqueos Distribuidos
Uno de los aspectos que requieren atencin
es la deteccin de interbloqueos al usar locking
en copia primaria y totalmente distribuido.
A diferencia de la tcnica centralizada, la
copia primaria y el totalmente distribuido no
necesariamente se puede detectar un
interbloqueo con el grafo de espera local, hay
que revisar los grafos de espera global.
TRANSACCIN DISTRIBUIDA
CONTROL DE CONCURRENCIA
DISTRIBUIDA
Centralizado
Copia Primaria
Totalmente Distribuido
Interbloqueos Distribuidos
RECUPERACIN DISTRIBUIDA
Ejecucin Normal y Protocolos
Comprometidos (Commit)
Protocolo de Dos Fases
Reinicio luego de una falla
Protocolo de Tres Fases
Agenda
Bases de Datos Distribuidas
CONTROL DE CONCURRENCIA
DISTRIBUIDA
Por ejemplo supngase que 2 sitios, A y B,
ambos contienen copias de los objetos O1 y
O2, y que la tcnica usada es read-any write-
all. Tenemos las transacciones: T1 en A (quiere
leer O1 y escribir O2) y T2 en B (quiere leer O2
y escribir O1):
T1: T2:
Begin Begin
S-lock O1 at sitio A S-lock O2 at sitio B
X-lock O2 at sitio A X-lock O1 at sitio B
X-lock O2 at sitio B X-lock O1 at sitio A
TRANSACCIN DISTRIBUIDA
CONTROL DE CONCURRENCIA
DISTRIBUIDA
Centralizado
Copia Primaria
Totalmente Distribuido
Interbloqueos Distribuidos
RECUPERACIN DISTRIBUIDA
Ejecucin Normal y Protocolos
Comprometidos (Commit)
Protocolo de Dos Fases
Reinicio luego de una falla
Protocolo de Tres Fases
T1 T2 T1 T2 T1 T2
En el lugar A
T1 T2 T1 T2 T1 T2
En el lugar B
T1 T2 T1 T2 T1 T2
Espera global
22
Agenda
Bases de Datos Distribuidas
CONTROL DE CONCURRENCIA
DISTRIBUIDA
Para detectar este caso, existen tres
algoritmos para deteccin de interbloqueos
distribuidos:
Centralizado: enva peridicamente todos
los grafos de espera locales de cada sitio a un
lugar designado para la deteccin de
interbloqueos, y all el algoritmo realiza una
unin de todos los grafos locales recibidos
formando un grafo de espera global en el que
detecta interbloqueos.
TRANSACCIN DISTRIBUIDA
CONTROL DE CONCURRENCIA
DISTRIBUIDA
Centralizado
Copia Primaria
Totalmente Distribuido
Interbloqueos Distribuidos
RECUPERACIN DISTRIBUIDA
Ejecucin Normal y Protocolos
Comprometidos (Commit)
Protocolo de Dos Fases
Reinicio luego de una falla
Protocolo de Tres Fases
Agenda
Bases de Datos Distribuidas
CONTROL DE CONCURRENCIA
DISTRIBUIDA
J errquico: este algoritmo es orientado a
BDD a nivel de pases, en el que los sitios se
forman en grupos por estados, y luego por
pas y finalmente por un grupo que tenga
todos los grupos. Cada nodo realiza un grafo
que revela los interbloqueos locales, y cada
uno de estos envan peridicamente dichos
grafos al lugar encargado de hacer el grafo
estadal y as ver los interbloqueos estadales.
Luego estos envan peridicamente ese grafo
al lugar donde se encarga de hacer los grafos
por pas que a su vez hacen un grafo y lo
envan al sitio que finalmente realiza el grafo
de espera global.
TRANSACCIN DISTRIBUIDA
CONTROL DE CONCURRENCIA
DISTRIBUIDA
Centralizado
Copia Primaria
Totalmente Distribuido
Interbloqueos Distribuidos
RECUPERACIN DISTRIBUIDA
Ejecucin Normal y Protocolos
Comprometidos (Commit)
Protocolo de Dos Fases
Reinicio luego de una falla
Protocolo de Tres Fases
23
Agenda
Bases de Datos Distribuidas
CONTROL DE CONCURRENCIA
DISTRIBUIDA
TRANSACCIN DISTRIBUIDA
CONTROL DE CONCURRENCIA
DISTRIBUIDA
Centralizado
Copia Primaria
Totalmente Distribuido
Interbloqueos Distribuidos
RECUPERACIN DISTRIBUIDA
Ejecucin Normal y Protocolos
Comprometidos (Commit)
Protocolo de Dos Fases
Reinicio luego de una falla
Protocolo de Tres Fases
Y el ltimo algoritmo es el ms simple:
aborta toda transaccin que su tiempo de
ejecucin sobrepase un tiempo estipulado
llamado time-out. Este tiene el problema que si
se escoge mal el time-out ocurrirn muchos
reinicios innecesarios.
Agenda
Bases de Datos Distribuidas
RECUPERACIN DISTRIBUIDA
TRANSACCIN DISTRIBUIDA
CONTROL DE CONCURRENCIA
DISTRIBUIDA
Centralizado
Copia Primaria
Totalmente Distribuido
Interbloqueos Distribuidos
RECUPERACIN DISTRIBUIDA
Ejecucin Normal y Protocolos
Comprometidos (Commit)
Protocolo de Dos Fases
Reinicio luego de una falla
Protocolo de Tres Fases
La recuperacin de fallas en un DDBMS es
mas complicado que las de un DBMS por:
Aparecen nuevas clases de fallas: una
falla de comunicacin y la falla de algn sitio
que se encontraba ejecutando una
subtransaccin.
O todas las transacciones llegan al commit
o no lo hacen, sin importar fallas de
comunicacin o de la localizacin de un sitio.
Esto es garantizado al usar un protocolo de
commit.
24
Agenda
Bases de Datos Distribuidas
RECUPERACIN DISTRIBUIDA
TRANSACCIN DISTRIBUIDA
CONTROL DE CONCURRENCIA
DISTRIBUIDA
Centralizado
Copia Primaria
Totalmente Distribuido
Interbloqueos Distribuidos
RECUPERACIN DISTRIBUIDA
Ejecucin Normal y Protocolos
Comprometidos (Commit)
Protocolo de Dos Fases
Reinicio luego de una falla
Protocolo de Tres Fases
Ejecucin Normal y Protocolos de Commit:
Durante la ejecucin normal cada sitio
mantiene su log, y las acciones de las
subtransacciones son logged en el sitio donde
son ejecutadas. El manejador de transacciones
en el sitio donde sta se origin es llamado el
coordinador para la transaccin, los
manejadores de transacciones en los sitios
donde las subtransacciones se ejecutan son
llamados subordinados (con respecto al
coordinador de esa transaccin).
Agenda
Bases de Datos Distribuidas
RECUPERACIN DISTRIBUIDA
TRANSACCIN DISTRIBUIDA
CONTROL DE CONCURRENCIA
DISTRIBUIDA
Centralizado
Copia Primaria
Totalmente Distribuido
Interbloqueos Distribuidos
RECUPERACIN DISTRIBUIDA
Ejecucin Normal y Protocolos
Comprometidos (Commit)
Protocolo de Dos Fases
Reinicio luego de una falla
Protocolo de Tres Fases
Protocolo de Dos Fases: Cuando el usuario
decide hacer commit en una transaccin, el
comando de commit es mandado al
coordinador para la transaccin. Los pasos son
los siguientes:
1. El coordinador manda un mensaje
preprense a cada subordinado.
2. Cuando el subordinado recibe el mensaje
preprense, decide si abortar o hacer commit
en su subtransaccin. l fuerza la escritura de
un abort o preparado en el log, y luego manda
un mensaje de si o no al coordinador.
25
Agenda
Bases de Datos Distribuidas
RECUPERACIN DISTRIBUIDA
TRANSACCIN DISTRIBUIDA
CONTROL DE CONCURRENCIA
DISTRIBUIDA
Centralizado
Copia Primaria
Totalmente Distribuido
Interbloqueos Distribuidos
RECUPERACIN DISTRIBUIDA
Ejecucin Normal y Protocolos
Comprometidos (Commit)
Protocolo de Dos Fases
Reinicio luego de una falla
Protocolo de Tres Fases
3. Si el coordinador recibe un mensaje de si
de todos los subordinados, fuerza la escritura
del commit en los registros del log y luego
manda un mensaje de commit a todos los
subordinados. Caso contrario o algunos de
los subordinados no responde en intervalo de
tiempo especfico, fuerza la escritura de abort
en el log, y manda un mensaje de aborten a
los subordinados.
Agenda
Bases de Datos Distribuidas
RECUPERACIN DISTRIBUIDA
TRANSACCIN DISTRIBUIDA
CONTROL DE CONCURRENCIA
DISTRIBUIDA
Centralizado
Copia Primaria
Totalmente Distribuido
Interbloqueos Distribuidos
RECUPERACIN DISTRIBUIDA
Ejecucin Normal y Protocolos
Comprometidos (Commit)
Protocolo de Dos Fases
Reinicio luego de una falla
Protocolo de Tres Fases
4. Cuando un subordinado abort este fuerza
la escritura de abort en el log, y manda un
mensaje de ack al coordinador, y aborta la
subtransaccin. Cuando un subordinado
commit fuerza la escritura de commit al log, y
manda un mensaje de ack al coordinador,
luego hace commit con su transaccin.
5. Finalmente el coordinador recibe todos
los ack de sus subordinados y escribe en el
log end para la transaccin.
26
Agenda
Bases de Datos Distribuidas
RECUPERACIN DISTRIBUIDA
TRANSACCIN DISTRIBUIDA
CONTROL DE CONCURRENCIA
DISTRIBUIDA
Centralizado
Copia Primaria
Totalmente Distribuido
Interbloqueos Distribuidos
RECUPERACIN DISTRIBUIDA
Ejecucin Normal y Protocolos
Comprometidos (Commit)
Protocolo de Dos Fases
Reinicio luego de una falla
Protocolo de Tres Fases
Reinicio luego de una falla: Al momento de
hacer una recuperacin se aplican los
siguientes pasos:
*Si tenemos un commit o un abort de la
transaccin T, limpiamos la transaccin,
aplicamos REDO o UNDO (segn el caso).
Si este sitio es el coordinador, el cual puede
determinar los commits y los aborts a partir del
log, debemos peridicamente reenviar un
commit o un abort a cada subordinado hasta
que recibamos un ack. Despus de recibidos
los acks de todos los subordinados, se escribe
un end en el log para T.
Agenda
Bases de Datos Distribuidas
RECUPERACIN DISTRIBUIDA
TRANSACCIN DISTRIBUIDA
CONTROL DE CONCURRENCIA
DISTRIBUIDA
Centralizado
Copia Primaria
Totalmente Distribuido
Interbloqueos Distribuidos
RECUPERACIN DISTRIBUIDA
Ejecucin Normal y Protocolos
Comprometidos (Commit)
Protocolo de Dos Fases
Reinicio luego de una falla
Protocolo de Tres Fases
*Si nos preparamos para escribir en log para
la transaccin T, pero esta no a enviado ni
commit ni un abort; entonces este sitio es
subordinado, y el coordinador puede estar
determinado para preparado para grabar en el
log. Debemos repetidamente contactar al
coordinador del sitio y determinar el estatus de
T. Una vez que el coordinador responda con
cualquiera de las dos commit o abort,
escribimos el correspondiente registro log,
aplicamos REDO o UNDO (segn sea el caso)
y escribimos end de la transaccin en el log.
27
Agenda
Bases de Datos Distribuidas
RECUPERACIN DISTRIBUIDA
TRANSACCIN DISTRIBUIDA
CONTROL DE CONCURRENCIA
DISTRIBUIDA
Centralizado
Copia Primaria
Totalmente Distribuido
Interbloqueos Distribuidos
RECUPERACIN DISTRIBUIDA
Ejecucin Normal y Protocolos
Comprometidos (Commit)
Protocolo de Dos Fases
Reinicio luego de una falla
Protocolo de Tres Fases
*Si no nos preparamos, escribimos un
commit o un abort en el registro del log para la
transaccin T; seguramente T no haba hecho
commit antes de la falla, entonces podemos
abortar unilateralmente y deshacemos (UNDO)
T y escribir un end en el registro log. En este
caso no tenemos manera de determinar si el
presente sitio es coordinador o subordinado
para T. Sin embargo, si el sitio coordinador
para una transaccin T falla, los subordinados
que votaron si no pueden decidir si hacen
commit o abort a T hasta que el coordinador se
recupere; decimos entonces que T est
bloqueada.
Agenda
Bases de Datos Distribuidas
RECUPERACIN DISTRIBUIDA
TRANSACCIN DISTRIBUIDA
CONTROL DE CONCURRENCIA
DISTRIBUIDA
Centralizado
Copia Primaria
Totalmente Distribuido
Interbloqueos Distribuidos
RECUPERACIN DISTRIBUIDA
Ejecucin Normal y Protocolos
Comprometidos (Commit)
Protocolo de Dos Fases
Reinicio luego de una falla
Protocolo de Tres Fases
Es una mejora al protocolo de 2 fases. La
idea bsica es que, cuando el coordinador
mande el mensaje preprense y reciba el
mensaje de si de todos los subordinados,
manda a todos los sitios un mensaje de
precommit. Cuando un nmero suficiente de
acks han sido recibidos, se hace commit en el
registro log y manda un mensaje de commit a
todos los subordinados. Este protocolo impone
un costo adicional durante la ejecucin normal
y requiere que las fallas en los enlaces de
comunicacin no conlleven a la particin de la
red, para asegurar estar libre de bloqueos. Por
esta razn no se usa en la prctica.

También podría gustarte