+ All Categories
Home > Documents > Base de Datos Distribuidas -...

Base de Datos Distribuidas -...

Date post: 01-Oct-2018
Category:
Upload: vanthuan
View: 221 times
Download: 1 times
Share this document with a friend
27
1 Bases de Datos Distribuidas Integrantes: Maria A. Ascanio. M José A. González R. Héctor. E. Cruz F. Agenda Bases de Datos Distribuidas ANTECEDENTES Las bases de datos distribuidas ofrecen diversas ventajas a los diseñadores y usuarios de bases de datos. Entre las más importantes se encuentra la transparencia en el acceso y localización de información. Sin embargo, el diseño y administración de bases de datos distribuidas constituye un gran desafío que incorpora problemas no encontrados en bases de datos centralizadas. ANTECEDENTES INTRODUCCIÓN BASES DE DATOS DISTRIBUIDAS TIPOS DE TRANSACCIONES DESVENTAJAS DE LAS BASES DE DATOS DISTRIBUÍDAS CONDICIONES DESEABLES EN UNA BASE DE DATOS TIPOS DE BASES DE DATOS DISTRIBUÍDAS ARQUITECTURAS DISTRIBUÍDAS DEL DBMS Arquitectura Cliente-Servidor Arquitectura de Servidores Cooperantes De una Vía Centralizada ALMACENAR DATOS EN UN DBMS DISTRIBUIDO Fragmentación Replicación MANEJO DEL CATÁLOGO DISTRIBUIDO Nombramiento de objetos
Transcript
Page 1: Base de Datos Distribuidas - alfa.facyt.uc.edu.vealfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/exposici... · 2 Agenda Bases de Datos Distribuidas INTRODUCCION Un área

1

Bases de Datos Distribuidas

Integrantes: Maria A. Ascanio. MJosé A. González R.Héctor. E. Cruz F.

Agenda

Bases de Datos Distribuidas

ANTECEDENTES

Las bases de datos distribuidas ofrecen diversas ventajas a los diseñadores y usuarios de bases de datos.

Entre las más importantes se encuentra la transparencia en el acceso y localización de información.

Sin embargo, el diseño y administración de bases de datos distribuidas constituye un gran desafío que incorpora problemas no encontrados en bases de datos centralizadas.

ANTECEDENTESINTRODUCCIÓNBASES DE DATOS DISTRIBUIDAS

TIPOS DE TRANSACCIONESDESVENTAJAS DE LAS BASES DE

DATOS DISTRIBUÍDASCONDICIONES DESEABLES EN

UNA BASE DE DATOS TIPOS DE BASES DE DATOS

DISTRIBUÍDASARQUITECTURAS DISTRIBUÍDAS

DEL DBMS Arquitectura Cliente-Servidor Arquitectura de Servidores

CooperantesDe una Vía Centralizada

ALMACENAR DATOS EN UN DBMS DISTRIBUIDO

Fragmentación Replicación

MANEJO DEL CATÁLOGO DISTRIBUIDO

Nombramiento de objetos

Page 2: Base de Datos Distribuidas - alfa.facyt.uc.edu.vealfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/exposici... · 2 Agenda Bases de Datos Distribuidas INTRODUCCION Un área

2

Agenda

Bases de Datos Distribuidas

INTRODUCCION

Un área en la cual las soluciones están integrando tecnología con nuevas arquitecturas o formas de hacer las cosas es, sin lugar a dudas, el área de los sistemas distribuidos de información.

Ellos se refieren al manejo de datos almacenados en facilidades de cómputo localizadas en muchos sitios ligados a través de una red de comunicaciones. Un caso específico de estos sistemas distribuidos es lo que se conoce como bases de datos distribuidas.

ANTECEDENTESINTRODUCCIÓNBASES DE DATOS DISTRIBUIDAS

TIPOS DE TRANSACCIONESDESVENTAJAS DE LAS BASES DE

DATOS DISTRIBUÍDASCONDICIONES DESEABLES EN

UNA BASE DE DATOS TIPOS DE BASES DE DATOS

DISTRIBUÍDASARQUITECTURAS DISTRIBUÍDAS

DEL DBMS Arquitectura Cliente-Servidor Arquitectura de Servidores

CooperantesDe una Vía Centralizada

ALMACENAR DATOS EN UN DBMS DISTRIBUIDO

Fragmentación Replicación

MANEJO DEL CATÁLOGO 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 través de varios sitios, y cada sitio es manejado típicamente por un DBMS que pueda funcionar independiente de los otros sitios.

La vista clásica de un sistema de la base de datos distribuida debe mostrar los datos distribuidos de forma transparente, dar la impresión de que los datos son locales

ANTECEDENTESINTRODUCCIÓNBASES DE DATOS DISTRIBUIDAS

TIPOS DE TRANSACCIONESDESVENTAJAS DE LAS BASES DE

DATOS DISTRIBUÍDASCONDICIONES DESEABLES EN

UNA BASE DE DATOS TIPOS DE BASES DE DATOS

DISTRIBUÍDASARQUITECTURAS DISTRIBUÍDAS

DEL DBMS Arquitectura Cliente-Servidor Arquitectura de Servidores

CooperantesDe una Vía Centralizada

ALMACENAR DATOS EN UN DBMS DISTRIBUIDO

Fragmentación Replicación

MANEJO DEL CATÁLOGO DISTRIBUIDO

Nombramiento de objetos

Page 3: Base de Datos Distribuidas - alfa.facyt.uc.edu.vealfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/exposici... · 2 Agenda Bases de Datos Distribuidas INTRODUCCION Un área

3

Agenda

Bases de Datos Distribuidas

BASES DE DATOS DISTRIBUIDAS

Lo que motiva a la distribución de la data es:

Incrementa la Disponibilidad

Acceso Distribuido a los Datos

Análisis de los Datos Distribuidos

Autonomía

ANTECEDENTESINTRODUCCIÓNBASES DE DATOS DISTRIBUIDAS

TIPOS DE TRANSACCIONESDESVENTAJAS DE LAS BASES DE

DATOS DISTRIBUÍDASCONDICIONES DESEABLES EN

UNA BASE DE DATOS TIPOS DE BASES DE DATOS

DISTRIBUÍDASARQUITECTURAS DISTRIBUÍDAS

DEL DBMS Arquitectura Cliente-Servidor Arquitectura de Servidores

CooperantesDe una Vía Centralizada

ALMACENAR DATOS EN UN DBMS DISTRIBUIDO

Fragmentación Replicación

MANEJO DEL CATÁLOGO 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 transacción.

Globales: Es aquella que accede a los datos situados en uno o mas sitios diferentes de aquel en que se inició la transacción

ANTECEDENTESINTRODUCCIÓNBASES DE DATOS DISTRIBUIDAS

TIPOS DE TRANSACCIONESDESVENTAJAS DE LAS BASES DE

DATOS DISTRIBUÍDASCONDICIONES DESEABLES EN

UNA BASE DE DATOS TIPOS DE BASES DE DATOS

DISTRIBUÍDASARQUITECTURAS DISTRIBUÍDAS

DEL DBMS Arquitectura Cliente-Servidor Arquitectura de Servidores

CooperantesDe una Vía Centralizada

ALMACENAR DATOS EN UN DBMS DISTRIBUIDO

Fragmentación Replicación

MANEJO DEL CATÁLOGO DISTRIBUIDO

Nombramiento de objetos

Page 4: Base de Datos Distribuidas - alfa.facyt.uc.edu.vealfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/exposici... · 2 Agenda Bases de Datos Distribuidas INTRODUCCION Un área

4

Agenda

Bases de Datos Distribuidas

DESVENTAJAS DE LAS BDs DISTRIBUIDAS

Coste de Desarrollo del Software

Mayor Probabilidad de Errores

Mayor Sobrecarga del Procesamiento

ANTECEDENTESINTRODUCCIÓNBASES DE DATOS DISTRIBUIDAS

TIPOS DE TRANSACCIONESDESVENTAJAS DE LAS BASES DE

DATOS DISTRIBUÍDASCONDICIONES DESEABLES EN

UNA BASE DE DATOS TIPOS DE BASES DE DATOS

DISTRIBUÍDASARQUITECTURAS DISTRIBUÍDAS

DEL DBMS Arquitectura Cliente-Servidor Arquitectura de Servidores

CooperantesDe una Vía Centralizada

ALMACENAR DATOS EN UN DBMS DISTRIBUIDO

Fragmentación Replicación

MANEJO DEL CATÁLOGO DISTRIBUIDO

Nombramiento de objetos

Agenda

Bases de Datos Distribuidas

CONDICIONES DESEABLES EN UNA BD

Particularmente, las características siguientes se consideran deseables.

Independencia de datos distribuidaLos usuarios deberían ser capaces de

solicitar queries sin especificar donde están situadas las relaciones, ya sean sus copias o fragmentos, a las que hizo referencia.

Atomicidad de una Transacción distribuida:

Los usuarios deberían ser capaces de escribir transacciones que accedan y actualicen datos en muchos sitios, las mismas tienen que seguir siendo atómicas, sino llevarían a la BDdistribuida a un estado inconsistente

ANTECEDENTESINTRODUCCIÓNBASES DE DATOS DISTRIBUIDAS

TIPOS DE TRANSACCIONESDESVENTAJAS DE LAS BASES DE

DATOS DISTRIBUÍDASCONDICIONES DESEABLES EN

UNA BASE DE DATOSTIPOS DE BASES DE DATOS

DISTRIBUÍDASARQUITECTURAS DISTRIBUÍDAS

DEL DBMS Arquitectura Cliente-Servidor Arquitectura de Servidores

CooperantesDe una Vía Centralizada

ALMACENAR DATOS EN UN DBMS DISTRIBUIDO

Fragmentación Replicación

MANEJO DEL CATÁLOGO DISTRIBUIDO

Nombramiento de objetos

Page 5: Base de Datos Distribuidas - alfa.facyt.uc.edu.vealfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/exposici... · 2 Agenda Bases de Datos Distribuidas INTRODUCCION Un área

5

Agenda

Bases de Datos Distribuidas

ARQUITECTURAS DISTRIBUIDAS DEL DBMS

Arquitectura Cliente-Servidor

Posee uno o más procesos clientes y uno o más 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.

ANTECEDENTESINTRODUCCIÓNBASES DE DATOS DISTRIBUIDAS

TIPOS DE TRANSACCIONESDESVENTAJAS DE LAS BASES DE

DATOS DISTRIBUÍDASCONDICIONES DESEABLES EN

UNA BASE DE DATOS TIPOS DE BASES DE DATOS

DISTRIBUÍDASARQUITECTURAS DISTRIBUÍDAS

DEL DBMSArquitectura Cliente-Servidor Arquitectura de Servidores

CooperantesDe una Vía Centralizada

ALMACENAR DATOS EN UN DBMS DISTRIBUIDO

Fragmentación Replicación

MANEJO DEL CATÁLOGO DISTRIBUIDO

Nombramiento de objetos

Agenda

Bases de Datos Distribuidas

ARQUITECTURAS DISTRIBUIDAS DEL DBMS

Arquitectura de Servidores Cooperantes

Podemos tener una colección de servidores de bases de datos, cada uno capaz de correr transacciones sobre los datos locales, y cooperativamente sobre datos residentes en otro servidor.

ANTECEDENTESINTRODUCCIÓNBASES DE DATOS DISTRIBUIDAS

TIPOS DE TRANSACCIONESDESVENTAJAS DE LAS BASES DE

DATOS DISTRIBUÍDASCONDICIONES DESEABLES EN

UNA BASE DE DATOS TIPOS DE BASES DE DATOS

DISTRIBUÍDASARQUITECTURAS DISTRIBUÍDAS

DEL DBMSArquitectura Cliente-Servidor Arquitectura de Servidores

CooperantesDe una Vía Centralizada

ALMACENAR DATOS EN UN DBMS DISTRIBUIDO

Fragmentación Replicación

MANEJO DEL CATÁLOGO DISTRIBUIDO

Nombramiento de objetos

Page 6: Base de Datos Distribuidas - alfa.facyt.uc.edu.vealfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/exposici... · 2 Agenda Bases de Datos Distribuidas INTRODUCCION Un área

6

Agenda

Bases de Datos Distribuidas

ARQUITECTURAS DISTRIBUIDAS DEL DBMS

De una Vía Centralizada:

La idea es que necesitamos solo un servidor de bases de datos capaz de manejar queries y transacciones provenientes de múltiples servidores.

Podemos pensar en este servidor especial como una capa del software que coordina la ejecución de queries y transacciones a través de uno o más servidores de bases de datos independientes, es usualmente llamado Middleware.

ANTECEDENTESINTRODUCCIÓNBASES DE DATOS DISTRIBUIDAS

TIPOS DE TRANSACCIONESDESVENTAJAS DE LAS BASES DE

DATOS DISTRIBUÍDASCONDICIONES DESEABLES EN

UNA BASE DE DATOS TIPOS DE BASES DE DATOS

DISTRIBUÍDASARQUITECTURAS DISTRIBUÍDAS

DEL DBMSArquitectura Cliente-Servidor Arquitectura de Servidores

CooperantesDe una Vía Centralizada

ALMACENAR DATOS EN UN DBMS DISTRIBUIDO

Fragmentación Replicación

MANEJO DEL CATÁLOGO DISTRIBUIDO

Nombramiento de objetos

Agenda

Bases de Datos Distribuidas

ALMACENAR DATOS EN UN DBMS DISTRIBUIDO

Fragmentación

Consiste en partir la relación en pequeñas relaciones o fragmentos y almacenar los fragmentos, posiblemente, en diferentes sitios.

Estos fragmentos contienen suficiente información como para permitir la reconstrucción de la relación original.

Hay dos esquemas diferentes de fragmentación de las relaciones:.

Fragmentación Horizontal

Fragmentación Vertical

ANTECEDENTESINTRODUCCIÓNBASES DE DATOS DISTRIBUIDAS

TIPOS DE TRANSACCIONESDESVENTAJAS DE LAS BASES DE

DATOS DISTRIBUÍDASCONDICIONES DESEABLES EN

UNA BASE DE DATOS TIPOS DE BASES DE DATOS

DISTRIBUÍDASARQUITECTURAS DISTRIBUÍDAS

DEL DBMS Arquitectura Cliente-Servidor Arquitectura de Servidores

CooperantesDe una Vía Centralizada

ALMACENAR DATOS EN UN DBMS DISTRIBUIDO

FragmentaciónReplicación

MANEJO DEL CATÁLOGO DISTRIBUIDO

Nombramiento de objetos

Page 7: Base de Datos Distribuidas - alfa.facyt.uc.edu.vealfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/exposici... · 2 Agenda Bases de Datos Distribuidas INTRODUCCION Un área

7

Agenda

Bases de Datos Distribuidas

ALMACENAR DATOS EN UN DBMS DISTRIBUIDO

11MaracayManuel53831

12MaracayTeresa53832

19ValenciaCarlos53650

18ValenciaJuan53688

18Caracas José53666

EdadCiudadNombreEID

Fragmentación VerticalFragmentación Horizontal

T5

T4

T3

T2

T1

TID

Fragmentación Horizontal y VerticalANTECEDENTESINTRODUCCIÓNBASES DE DATOS DISTRIBUIDAS

TIPOS DE TRANSACCIONESDESVENTAJAS DE LAS BASES DE

DATOS DISTRIBUÍDASCONDICIONES DESEABLES EN

UNA BASE DE DATOS TIPOS DE BASES DE DATOS

DISTRIBUÍDASARQUITECTURAS DISTRIBUÍDAS

DEL DBMS Arquitectura Cliente-Servidor Arquitectura de Servidores

CooperantesDe una Vía Centralizada

ALMACENAR DATOS EN UN DBMS DISTRIBUIDO

FragmentaciónReplicación

MANEJO DEL CATÁLOGO DISTRIBUIDO

Nombramiento de objetos

Agenda

Bases de Datos Distribuidas

ALMACENAR DATOS EN UN DBMS DISTRIBUIDO

ReplicaciónSignifica que almacenamos muchas

copias de una relación o de los fragmentos de la misma. Una relación entera puede estar replicada en uno o mas sitios, y similarmente, uno o más fragmentos de una relación.

Ventajas: Evaluación más rápida de los queriesIncrementa la disponibilidad de los datosMinimiza el movimiento de los datos entre

los sitios

DesventajasSobrecarga incrementada durante laactualización

ANTECEDENTESINTRODUCCIÓNBASES DE DATOS DISTRIBUIDAS

TIPOS DE TRANSACCIONESDESVENTAJAS DE LAS BASES DE

DATOS DISTRIBUÍDASCONDICIONES DESEABLES EN

UNA BASE DE DATOS TIPOS DE BASES DE DATOS

DISTRIBUÍDASARQUITECTURAS DISTRIBUÍDAS

DEL DBMS Arquitectura Cliente-Servidor Arquitectura de Servidores

CooperantesDe una Vía Centralizada

ALMACENAR DATOS EN UN DBMS DISTRIBUIDO

Fragmentación Replicación

MANEJO DEL CATÁLOGO DISTRIBUIDO

Nombramiento de objetos

Page 8: Base de Datos Distribuidas - alfa.facyt.uc.edu.vealfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/exposici... · 2 Agenda Bases de Datos Distribuidas INTRODUCCION Un área

8

Agenda

Bases de Datos Distribuidas

ANTECEDENTESINTRODUCCIÓNBASES DE DATOS DISTRIBUIDAS

TIPOS DE TRANSACCIONESDESVENTAJAS DE LAS BASES DE

DATOS DISTRIBUÍDASCONDICIONES DESEABLES EN

UNA BASE DE DATOS TIPOS DE BASES DE DATOS

DISTRIBUÍDASARQUITECTURAS DISTRIBUÍDAS

DEL DBMS Arquitectura Cliente-Servidor Arquitectura de Servidores

CooperantesDe una Vía Centralizada

ALMACENAR DATOS EN UN DBMS DISTRIBUIDO

Fragmentación Replicación

MANEJO DEL CATÁLOGO DISTRIBUIDO

Nombramiento de objetos

MANEJO DEL CATÁLOGO DISTRIBUIDO

Nombrando Objetos Si una relación es fragmentada y replicada, se

debe tener un identificador único por cada réplica de cada fragmento.

La solución a esto es usar nombres con varios campos: El 1er. campo sería el nombre local (asignado localmente en el sitio donde fue creada la relación), y El 2do. Campo el sitio de origen (identifica al sitio donde la relación fue creada)

Estos 2 campos identifican únicamente a la relación y llamamos al conjunto nombre global de la relación.

Para identificar una réplica o un fragmento de una relación, usamos el nombre global de la relación y le añadimos el id réplica (identificador de la réplica). Se le llama nombre global de la réplica.

Agenda

Bases de Datos Distribuidas

MANEJO DEL CATÁLOGO DISTRIBUIDO

Estructura Del Catálogo Independencia De

Datos Distribuida PROCESAMIENTO EN QUERY

DISTRIBUIDOQUERIES NONJOIN EN UN DBMS

DISTRIBUIDOJOINS EN UNA DBMS DISTRIBUIDA

Leer lo Necesario

Envió a un sitioSEMIJOINS Y BLOOMJOINS

Semijoins

BloomjoinsOPTIMIZACIÓN BASADA EN

COSTOSACTUALIZACIÓN DE LA DATA

DISTRIBUIDAReplicación sincrónica

Replicación Asincrónica

MANEJO DEL CATÁLOGO DISTRIBUIDO

Estructura del Catálogo (describe toda la data de cada sitio):

Un sistema de catálogo 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 autonomía del sitio, ya que cada cambio realizado a dicho catálogo debe ser propagado a todos los otros sitios.

Otra solución, que preserva la autonomía local y no es vulnerable a fallas en un solo sitio, es que cada sitio mantenga un catálogo local que describa todas las copias de la data almacenada en el sitio.

Page 9: Base de Datos Distribuidas - alfa.facyt.uc.edu.vealfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/exposici... · 2 Agenda Bases de Datos Distribuidas INTRODUCCION Un área

9

Agenda

Bases de Datos Distribuidas

MANEJO DEL CATÁLOGO DISTRIBUIDO

Independencia de la Data Distribuida

Significa que el usuario debería ser capaz de escribir un query sin importarle como la relación esta fragmentada o replicada, es decir, esto debe ser “transparente” al usuario.

En realidad es responsabilidad del DBMSprocesar la relación como se necesite, (localizando copias convenientes de fragmentos, ensamblando los fragmentos verticales, y tomando la unión de fragmentos horizontales)

MANEJO DEL CATÁLOGO DISTRIBUIDO

Estructura Del Catálogo Independencia De

Datos DistribuidaPROCESAMIENTO EN QUERY

DISTRIBUIDOQUERIES NONJOIN EN UN DBMS

DISTRIBUIDOJOINS EN UNA DBMS DISTRIBUIDA

Leer lo Necesario

Envió a un sitioSEMIJOINS Y BLOOMJOINS

Semijoins

BloomjoinsOPTIMIZACIÓN BASADA EN

COSTOSACTUALIZACIÓN DE LA DATA

DISTRIBUIDAReplicación sincrónica

Replicación Asincrónica

Agenda

Bases de Datos Distribuidas

Procesamiento en Query Distribuido

Consideremos las siguientes relaciones: Marinero (mid, mnombre, promedio, edad)Reservación: (mid, bid, día, rnombre)

Usaremos lo anterior, para estimar el costo de una estrategia de evaluación, mas el numero de I/O’s de página, también debemos contar el número de páginas mandadas de un sitio a otro, ya que la comunicación implica un costo significativo del costo total en un sistema de BD distribuida. Añadiremos el costo de trasladar las tuplas resultantes del sitio donde se realizó el Query al sitio donde se ensamblará el resultado total.

MANEJO DEL CATÁLOGO DISTRIBUIDO

Estructura Del Catálogo Independencia De

Datos Distribuida PROCESAMIENTO EN QUERY

DISTRIBUIDOQUERIES NONJOIN EN UN DBMS

DISTRIBUIDOJOINS EN UNA DBMS DISTRIBUIDA

Leer lo Necesario

Envió a un sitioSEMIJOINS Y BLOOMJOINS

Semijoins

BloomjoinsOPTIMIZACIÓN BASADA EN

COSTOSACTUALIZACIÓN DE LA DATA

DISTRIBUIDAReplicación sincrónica

Replicación Asincrónica

Page 10: Base de Datos Distribuidas - alfa.facyt.uc.edu.vealfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/exposici... · 2 Agenda Bases de Datos Distribuidas INTRODUCCION Un área

10

Agenda

Bases de Datos Distribuidas

Procesamiento en Query Distribuido

Se asumirá la siguiente notación: Td: Tiempo que toma leer una página del disco.Ts: Tiempo que toma trasladar una pagina.

MANEJO DEL CATÁLOGO DISTRIBUIDO

Estructura Del Catálogo Independencia De

Datos Distribuida PROCESAMIENTO EN QUERY

DISTRIBUIDOQUERIES NONJOIN EN UN DBMS

DISTRIBUIDOJOINS EN UNA DBMS DISTRIBUIDA

Leer lo Necesario

Envió a un sitioSEMIJOINS Y BLOOMJOINS

Semijoins

BloomjoinsOPTIMIZACIÓN BASADA EN

COSTOSACTUALIZACIÓN DE LA DATA

DISTRIBUIDAReplicación sincrónica

Replicación Asincrónica

Agenda

Bases de Datos Distribuidas

Queries Nonjoin en un DBMS Distribuido

Incluso simples operaciones como búsqueda, selección, y proyección en una relación, son afectadas por la fragmentación y duplicación.

Consideremos el siguiente Query:

SELECT S.edadFROM Marinero SWHERE S.promedio > 3 and S.promedio < 7

Suponiendo que la relación marinero esta fragmentada horizontalmente, con todas las tuplas < 5 en Shangai, y todas las tuplas >= 5 en Tokio.

MANEJO DEL CATÁLOGO DISTRIBUIDO

Estructura Del Catálogo Independencia De

Datos Distribuida PROCESAMIENTO EN QUERY

DISTRIBUIDOQUERIES NONJOIN EN UN DBMS

DISTRIBUIDOJOINS EN UNA DBMS DISTRIBUIDA

Leer lo Necesario

Envió a un sitioSEMIJOINS Y BLOOMJOINS

Semijoins

BloomjoinsOPTIMIZACIÓN BASADA EN

COSTOSACTUALIZACIÓN DE LA DATA

DISTRIBUIDAReplicación sincrónica

Replicación Asincrónica

Page 11: Base de Datos Distribuidas - alfa.facyt.uc.edu.vealfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/exposici... · 2 Agenda Bases de Datos Distribuidas INTRODUCCION Un área

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 unión de las respuestas. Si la clausula SELECT contuvo el AVG (S.edad), la combinación, 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 información para calcular la edad promedio de todos los marineros.

Por otra parte, si la cláusula WHERE contenía solo la condición S.promedio > 6, por la otra parte, el DBMS debe reconocer que este Query puede ser respondido ejecutándolo solamente en Tokio.

MANEJO DEL CATÁLOGO DISTRIBUIDO

Estructura Del Catálogo Independencia De

Datos Distribuida PROCESAMIENTO EN QUERY

DISTRIBUIDOQUERIES NONJOIN EN UN DBMS

DISTRIBUIDOJOINS EN UNA DBMS DISTRIBUIDA

Leer lo Necesario

Envió a un sitioSEMIJOINS Y BLOOMJOINS

Semijoins

BloomjoinsOPTIMIZACIÓN BASADA EN

COSTOSACTUALIZACIÓN DE LA DATA

DISTRIBUIDAReplicación sincrónica

Replicación Asincrónica

Agenda

Bases de Datos Distribuidas

Joins en una DBMS Distribuida

Los Joins de Relaciones almacenadas en diferentes sitios pueden ser muy costosos. Ahora supondremos que la relación Marinero fue almacenada en Londres y Reservación en Paris.

Consideraremos varias maneras para resolver:

Marinero Reservación

MANEJO DEL CATÁLOGO DISTRIBUIDO

Estructura Del Catálogo Independencia De

Datos Distribuida PROCESAMIENTO EN QUERY

DISTRIBUIDOQUERIES NONJOIN EN UN DBMS

DISTRIBUIDOJOINS EN UNA DBMS DISTRIBUIDA

Leer lo Necesario

Envió a un sitioSEMIJOINS Y BLOOMJOINS

Semijoins

BloomjoinsOPTIMIZACIÓN BASADA EN

COSTOSACTUALIZACIÓN DE LA DATA

DISTRIBUIDAReplicación sincrónica

Replicación Asincrónica

Page 12: Base de Datos Distribuidas - alfa.facyt.uc.edu.vealfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/exposici... · 2 Agenda Bases de Datos Distribuidas INTRODUCCION Un área

12

Agenda

Bases de Datos Distribuidas

Leer lo Necesario

La idea principal, es traer las páginas necesarias y almacenarlas en la cache, para terminar de procesarlas. Podemos hacer un Page-orientednested loops join en Londres con marinero como la más externa, y por cada página de marinero, y leer todas las páginas de Reservación de Paris. Si almacenamos las páginas leídas de Reservación en Londres hasta que el join este completo, estas son leídas una sola vez.

Ahora, supondremos que las páginas de Reservación no pueden ser almacenadas en un cache:

El costo es 500td para scan Marinero + (por cada página de Marinero) el costo del canning y envio de todas las de Reservación, el cual es de 1000 (td+ ts). Por lo tanto el costo total sería: 500td + 500.000(td +ts).

MANEJO DEL CATÁLOGO DISTRIBUIDO

Estructura Del Catálogo Independencia De

Datos Distribuida PROCESAMIENTO EN QUERY

DISTRIBUIDOQUERIES NONJOIN EN UN DBMS

DISTRIBUIDOJOINS EN UNA DBMS DISTRIBUIDA

Leer lo Necesario

Envió a un sitioSEMIJOINS Y BLOOMJOINS

Semijoins

BloomjoinsOPTIMIZACIÓN BASADA EN

COSTOSACTUALIZACIÓN DE LA DATA

DISTRIBUIDAReplicación sincrónica

Replicación Asincrónica

Agenda

Bases de Datos Distribuidas

Leer lo Necesario

Además, si el query no fue hecho desde el sitio en Londres, debemos añadir el costo del envío del resultado al sitio donde se realizó la consulta, lo que depende del tamaño del resultado. Debido a que mid es una clave para Marinero, el número de tuplas en el resultado es 100.000 (# tuplas n Reservación) y cada tupla tiene una longitud de 40 + 50 = 90 bytes, entonces hay 4000/90 = 44 tuplas por página en el resultado, el tamaño total de éste es de 100.000/44 = 2273 páginas.

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), sería más barato si trasladáramos ambas relaciones al sitio del query y ejecutáramos el join allí.

MANEJO DEL CATÁLOGO DISTRIBUIDO

Estructura Del Catálogo Independencia De

Datos Distribuida PROCESAMIENTO EN QUERY

DISTRIBUIDOQUERIES NONJOIN EN UN DBMS

DISTRIBUIDOJOINS EN UNA DBMS DISTRIBUIDA

Leer lo Necesario

Envió a un sitioSEMIJOINS Y BLOOMJOINS

Semijoins

BloomjoinsOPTIMIZACIÓN BASADA EN

COSTOSACTUALIZACIÓN DE LA DATA

DISTRIBUIDAReplicación sincrónica

Replicación Asincrónica

Page 13: Base de Datos Distribuidas - alfa.facyt.uc.edu.vealfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/exposici... · 2 Agenda Bases de Datos Distribuidas INTRODUCCION Un área

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. Podríamos trasladar la relación Marinero de Londres a Paris y ejecutar luego el joinallá, o en lugar de mover Marinero, trasladar Reservación a Londres y realizar el join en Londres; otra opción sería trasladar ambas (Marinero y Reservación) al sitio donde se realizó el query y procesar el join en él.

El costo del scanning, el envío de Marinero, guardando la relación Marinero en Paris y asumiendo un sort-merge join, y la ejecución del joinen Paris es de: 500(2td + ts).

MANEJO DEL CATÁLOGO DISTRIBUIDO

Estructura Del Catálogo Independencia De

Datos Distribuida PROCESAMIENTO EN QUERY

DISTRIBUIDOQUERIES NONJOIN EN UN DBMS

DISTRIBUIDOJOINS EN UNA DBMS DISTRIBUIDA

Leer lo Necesario

Envió a un sitioSEMIJOINS Y BLOOMJOINS

Semijoins

BloomjoinsOPTIMIZACIÓN BASADA EN

COSTOSACTUALIZACIÓN DE LA DATA

DISTRIBUIDAReplicación sincrónica

Replicación Asincrónica

Agenda

Bases de Datos Distribuidas

SEMIJOINS Y BLOOMJOINS

Suponiendo que se envío Reservación a Londres y se ejecutó el join allí. Algunas tuplas de Reservación no harían join con ninguna tupla de Marinero. Si de alguna manera identificamos las tuplas de Reservación que seguramente no van a hacer join con ninguna de Marinero, entonces podríamos evitar enviarlas. Estas dos técnicas proponen reducir el número de tuplas a ser trasladadas

MANEJO DEL CATÁLOGO DISTRIBUIDO

Estructura Del Catálogo Independencia De

Datos Distribuida PROCESAMIENTO EN QUERY

DISTRIBUIDOQUERIES NONJOIN EN UN DBMS

DISTRIBUIDOJOINS EN UNA DBMS DISTRIBUIDA

Leer lo Necesario

Envió a un sitioSEMIJOINS Y BLOOMJOINS

Semijoins

BloomjoinsOPTIMIZACIÓN BASADA EN

COSTOSACTUALIZACIÓN DE LA DATA

DISTRIBUIDAReplicación sincrónica

Replicación Asincrónica

Page 14: Base de Datos Distribuidas - alfa.facyt.uc.edu.vealfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/exposici... · 2 Agenda Bases de Datos Distribuidas INTRODUCCION Un área

14

Agenda

Bases de Datos Distribuidas

Semijoins

La idea es seguir los siguientes tres pasos: 1) En Londres, computar la proyección 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 proyección recibida desde el primer sitio con la relación Reservación. El resultado de este join es llamado la reducción de Reservación con respecto a Marinero.

Solo aquella tuplas en la reducción harán join con las tuplas en la relación Marinero. Trasladar la reducción de Reservación a Londres es preferible antes que la relación completa.

3) En Londres, calcular el join de la reducción de Reservación con Marinero.

El semijoin es especialmente útil en conjunción con una selección aplicada a una de las relaciones.

MANEJO DEL CATÁLOGO DISTRIBUIDO

Estructura Del Catálogo Independencia De

Datos Distribuida PROCESAMIENTO EN QUERY

DISTRIBUIDOQUERIES NONJOIN EN UN DBMS

DISTRIBUIDOJOINS EN UNA DBMS DISTRIBUIDA

Leer lo Necesario

Envió a un sitioSEMIJOINS Y BLOOMJOINS

Semijoins

BloomjoinsOPTIMIZACIÓN BASADA EN

COSTOSACTUALIZACIÓN DE LA DATA

DISTRIBUIDAReplicación sincrónica

Replicación Asincrónica

Agenda

Bases de Datos Distribuidas

Bloomjoins

Es muy similar a la técnica de Semijoin, solo que usa un vector de bits conjuntamente con hash. En el 1er. paso no se envía la proyección de Marinero sino un vector de bits. Un vector de bits de tamaño k es procesado aplicando hashing a cada tupla de Marinero en un rango de 0 a (k - 1), colocando el bit ia 1 algunas tupla hashes con i, y 0 de lo contrario. En el 2do. paso, la reducción de Reservación es procesada mediante el hashing de cada tupla de Reservación (usando el campo mid) en un rango de 0 – (k-1) usando la misma función 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 técnica aplicada a Reservación es menor que el correspondiente a la de Semijoins; por otra parte, el tamaño de la reducción de Reservación tiende a ser más grande y el costo del envío de la reducción y de hacer el join con Marinero es mayor.

MANEJO DEL CATÁLOGO DISTRIBUIDO

Estructura Del Catálogo Independencia De

Datos Distribuida PROCESAMIENTO EN QUERY

DISTRIBUIDOQUERIES NONJOIN EN UN DBMS

DISTRIBUIDOJOINS EN UNA DBMS DISTRIBUIDA

Leer lo Necesario

Envió a un sitioSEMIJOINS Y BLOOMJOINS

Semijoins

BloomjoinsOPTIMIZACIÓN BASADA EN

COSTOSACTUALIZACIÓN DE LA DATA

DISTRIBUIDAReplicación sincrónica

Replicación Asincrónica

Page 15: Base de Datos Distribuidas - alfa.facyt.uc.edu.vealfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/exposici... · 2 Agenda Bases de Datos Distribuidas INTRODUCCION Un área

15

Agenda

Bases de Datos Distribuidas

Optimización Basada en Costos

Hemos visto como la distribución de datos pueden afectar la implementación de operaciones individuales, como una selección, adición, etc. En general, un query involucra severas operaciones, y la optimización de esta en una BD distribuida nos trae los siguientes retos:

*El costo de la comunicación debe ser considerado. Si tenemos muchas copias de una relación, debemos decidir cual copia usar.

*Si cada sitio corre individualmente bajo el control de diferentes DBMS, la autonomía de cada sitio debe ser respetada cuando se hacen planes de queries globales.

La optimización de queries se hace básicamente como en las BD Centralizadas, claro que hay nuevos métodos para las operaciones (por ejemplo: joins distribuidos).

MANEJO DEL CATÁLOGO DISTRIBUIDO

Estructura Del Catálogo Independencia De

Datos Distribuida PROCESAMIENTO EN QUERY

DISTRIBUIDOQUERIES NONJOIN EN UN DBMS

DISTRIBUIDOJOINS EN UNA DBMS DISTRIBUIDA

Leer lo Necesario

Envió a un sitioSEMIJOINS Y BLOOMJOINS

Semijoins

BloomjoinsOPTIMIZACIÓN BASADA EN

COSTOSACTUALIZACIÓN DE LA DATA

DISTRIBUIDAReplicación sincrónica

Replicación Asincrónica

Agenda

Bases de Datos Distribuidas

ACTUALIZACIÓN DE LA DATA DISTRIBUIDA

En relación a las actualizaciones, igualmente las transacciones deben continuar siendo atómicas, sin importar que la data este fragmentada o replicada. Hay dos maneras de actualizar las copias de una relación modificada:

- Replicación sincrónica. - Replicación asincrónica.

MANEJO DEL CATÁLOGO DISTRIBUIDO

Estructura Del Catálogo Independencia De

Datos Distribuida PROCESAMIENTO EN QUERY

DISTRIBUIDOQUERIES NONJOIN EN UN DBMS

DISTRIBUIDOJOINS EN UNA DBMS DISTRIBUIDA

Leer lo Necesario

Envió a un sitioSEMIJOINS Y BLOOMJOINS

Semijoins

BloomjoinsOPTIMIZACIÓN BASADA EN

COSTOSACTUALIZACIÓN DE LA DATA

DISTRIBUIDAReplicación sincrónica

Replicación Asincrónica

Page 16: Base de Datos Distribuidas - alfa.facyt.uc.edu.vealfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/exposici... · 2 Agenda Bases de Datos Distribuidas INTRODUCCION Un área

16

Agenda

Bases de Datos Distribuidas

Replicación sincrónica

Es cuando todas las copias de la relación modificada son actualizadas antes que la transacción que las modificó haga commit. Aquí se aplican 2 técnicas:

- Voting (votando): Una transacción debe escribir la mayoría de las copias para modificar un objeto y leer al menos suficientes copias para asegurarse que esa copia está presente.

Esta técnica no es muy recomendada ya que en la mayoría de los casos leer un objeto

requiere leer múltiples copias, y en muchas aplicaciones, los objetos son leídos con más

frecuencia que actualizados, es así la eficiencia en cuanto a lectura muy importante.

MANEJO DEL CATÁLOGO DISTRIBUIDO

Estructura Del Catálogo Independencia De

Datos Distribuida PROCESAMIENTO EN QUERY

DISTRIBUIDOQUERIES NONJOIN EN UN DBMS

DISTRIBUIDOJOINS EN UNA DBMS DISTRIBUIDA

Leer lo Necesario

Envió a un sitioSEMIJOINS Y BLOOMJOINS

Semijoins

BloomjoinsOPTIMIZACIÓN BASADA EN

COSTOSACTUALIZACIÓN DE LA DATA

DISTRIBUIDAReplicación sincrónica

Replicación Asincrónica

Agenda

Bases de Datos Distribuidas

Replicación sincrónica

- Read-any write-all (Leer cualquiera, escribir todas): Para leer un objeto, una transacción puede leer cualquier copia, pero para escribir un objeto, ésta debe escribir todas las copias. Las lecturas son rápidas, especialmente si tenemos una copia local, pero escribir se vuelve muy lento, en relación con la técnica Voting.

Esta técnica (read-any write-all) recomendada cuando las lecturas son más frecuentes que las escrituras, y es la más usada a la hora de implementar la replicación síncrona.

MANEJO DEL CATÁLOGO DISTRIBUIDO

Estructura Del Catálogo Independencia De

Datos Distribuida PROCESAMIENTO EN QUERY

DISTRIBUIDOQUERIES NONJOIN EN UN DBMS

DISTRIBUIDOJOINS EN UNA DBMS DISTRIBUIDA

Leer lo Necesario

Envió a un sitioSEMIJOINS Y BLOOMJOINS

Semijoins

BloomjoinsOPTIMIZACIÓN BASADA EN

COSTOSACTUALIZACIÓN DE LA DATA

DISTRIBUIDAReplicación sincrónica

Replicación Asincrónica

Page 17: Base de Datos Distribuidas - alfa.facyt.uc.edu.vealfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/exposici... · 2 Agenda Bases de Datos Distribuidas INTRODUCCION Un área

17

Agenda

Bases de Datos Distribuidas

Replicación Asincrónica

Es la más ampliamente usada a nivel comercial en los DBMSs. Aquí las copias de una relación modificada son actualizadas solo periódicamente y una transacción que lea diferentes copias de la misma relación puede leer diferentes valores. Este tipo de replicación compromete la independencia de la data distribuida.

La replicación asíncrona trae consigo un costo significativo. Antes que una transacción de actualización pueda hacer commit, esta debe obtener los locks sobre todas las copias –asumiendo el uso de la técnica read-any write-all -de la data modificada. La transacción 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 CATÁLOGO DISTRIBUIDO

Estructura Del Catálogo Independencia De

Datos Distribuida PROCESAMIENTO EN QUERY

DISTRIBUIDOQUERIES NONJOIN EN UN DBMS

DISTRIBUIDOJOINS EN UNA DBMS DISTRIBUIDA

Leer lo Necesario

Envió a un sitioSEMIJOINS Y BLOOMJOINS

Semijoins

BloomjoinsOPTIMIZACIÓN BASADA EN

COSTOSACTUALIZACIÓN DE LA DATA

DISTRIBUIDAReplicación sincrónica

Replicación Asincrónica

Agenda

Bases de Datos Distribuidas

Replicación Asincrónica

Si el sitio o el enlace de comunicación fallan, la transacción no puede hacer commit hasta que todos los sitios a los cuales les ha modificado la data se recuperen. Por todo esto, la replicación asíncrona no es deseable e inclusive inalcanzable en muchas situaciones. El hecho de mantener copias con distintitos valores de una misma relación ocasiona la inconsistencia de los datos.

Este tipo de replicación tiene dos formas:

- De Sitio Primario: Una copia de la relación es designada como copia maestra o primaria. Las réplicas o los fragmentos de la relación completa pueden ser creados en otros sitios; estas serían copias secundarias, y a diferencia de la copia primaria; pueden no ser actualizadas.

MANEJO DEL CATÁLOGO DISTRIBUIDO

Estructura Del Catálogo Independencia De

Datos Distribuida PROCESAMIENTO EN QUERY

DISTRIBUIDOQUERIES NONJOIN EN UN DBMS

DISTRIBUIDOJOINS EN UNA DBMS DISTRIBUIDA

Leer lo Necesario

Envió a un sitioSEMIJOINS Y BLOOMJOINS

Semijoins

BloomjoinsOPTIMIZACIÓN BASADA EN

COSTOSACTUALIZACIÓN DE LA DATA

DISTRIBUIDAReplicación sincrónica

Replicación Asincrónica

Page 18: Base de Datos Distribuidas - alfa.facyt.uc.edu.vealfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/exposici... · 2 Agenda Bases de Datos Distribuidas INTRODUCCION Un área

18

Agenda

Bases de Datos Distribuidas

Replicación Asincrónica

Un mecanismo común para establecer las copias primaria y secundaria es que los usuarios primero registran la relación en el sitio primario y subsecuentemente suscriben

Un fragmento de la relación registrada en otro (secundario) sitio.

- Par a Par: Más de una copia (aunque no todas) puede ser designada como actualizables, esta es una copia maestra. Además para propagar los cambios,

Una resolución de conflicto puede ser usada para lidiar con el hecho de hacer el cambio en los diferentes sitios. Esta es la más utilizada.

MANEJO DEL CATÁLOGO DISTRIBUIDO

Estructura Del Catálogo Independencia De

Datos Distribuida PROCESAMIENTO EN QUERY

DISTRIBUIDOQUERIES NONJOIN EN UN DBMS

DISTRIBUIDOJOINS EN UNA DBMS DISTRIBUIDA

Leer lo Necesario

Envió a un sitioSEMIJOINS Y BLOOMJOINS

Semijoins

BloomjoinsOPTIMIZACIÓN BASADA EN

COSTOSACTUALIZACIÓN DE LA DATA

DISTRIBUIDAReplicación sincrónica

Replicación Asincrónica

Agenda

Bases de Datos Distribuidas

TRANSACCIÓN DISTRIBUIDA

Las transacciones realizadas en bases de datos distribuidas puede acceder a otros sitios, los cuales se les llama subtransacciones.

Cuando una transacción es remitida de un lugar, el manejador de transacciones de ese lugar divide la transacción en colecciones de subtransacciones para ejecutar en diferentes lugares, que se ejecutara en sus respectivos manejadores de transacciones.

TRANSACCIÓN DISTRIBUIDACONTROL DE CONCURRENCIA

DISTRIBUIDACentralizadoCopia PrimariaTotalmente DistribuidoInterbloqueos Distribuidos

RECUPERACIÓN DISTRIBUIDAEjecución Normal y Protocolos

Comprometidos (Commit)Protocolo de Dos FasesReinicio luego de una fallaProtocolo de Tres Fases

Page 19: Base de Datos Distribuidas - alfa.facyt.uc.edu.vealfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/exposici... · 2 Agenda Bases de Datos Distribuidas INTRODUCCION Un área

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 técnicas para escoger dicho objeto y la elección de una de estas técnicas determinara la forma de administrar los locks.

Las técnicas a tratar son:

•Centralizado•Copia Primaria•Totalmente Distribuido

TRANSACCIÓN DISTRIBUIDACONTROL DE CONCURRENCIA

DISTRIBUIDACentralizadoCopia PrimariaTotalmente DistribuidoInterbloqueos Distribuidos

RECUPERACIÓN DISTRIBUIDAEjecución Normal y Protocolos

Comprometidos (Commit)Protocolo de Dos FasesReinicio luego de una fallaProtocolo 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.

TRANSACCIÓN DISTRIBUIDACONTROL DE CONCURRENCIA

DISTRIBUIDACentralizadoCopia PrimariaTotalmente DistribuidoInterbloqueos Distribuidos

RECUPERACIÓN DISTRIBUIDAEjecución Normal y Protocolos

Comprometidos (Commit)Protocolo de Dos FasesReinicio luego de una fallaProtocolo de Tres Fases

Page 20: Base de Datos Distribuidas - alfa.facyt.uc.edu.vealfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/exposici... · 2 Agenda Bases de Datos Distribuidas INTRODUCCION Un área

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.

TRANSACCIÓN DISTRIBUIDACONTROL DE CONCURRENCIA

DISTRIBUIDACentralizadoCopia PrimariaTotalmente DistribuidoInterbloqueos Distribuidos

RECUPERACIÓN DISTRIBUIDAEjecución Normal y Protocolos

Comprometidos (Commit)Protocolo de Dos FasesReinicio luego de una fallaProtocolo 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.

TRANSACCIÓN DISTRIBUIDACONTROL DE CONCURRENCIA

DISTRIBUIDACentralizadoCopia PrimariaTotalmente DistribuidoInterbloqueos Distribuidos

RECUPERACIÓN DISTRIBUIDAEjecución Normal y Protocolos

Comprometidos (Commit)Protocolo de Dos FasesReinicio luego de una fallaProtocolo de Tres Fases

Page 21: Base de Datos Distribuidas - alfa.facyt.uc.edu.vealfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/exposici... · 2 Agenda Bases de Datos Distribuidas INTRODUCCION Un área

21

Agenda

Bases de Datos Distribuidas

CONTROL DE CONCURRENCIA DISTRIBUIDA

Interbloqueos Distribuidos

Uno de los aspectos que requieren atención es la detección de interbloqueos al usar lockingen copia primaria y totalmente distribuido.

A diferencia de la técnica 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.

TRANSACCIÓN DISTRIBUIDACONTROL DE CONCURRENCIA

DISTRIBUIDACentralizadoCopia PrimariaTotalmente DistribuidoInterbloqueos Distribuidos

RECUPERACIÓN DISTRIBUIDAEjecución Normal y Protocolos

Comprometidos (Commit)Protocolo de Dos FasesReinicio luego de una fallaProtocolo de Tres Fases

Agenda

Bases de Datos Distribuidas

CONTROL DE CONCURRENCIA DISTRIBUIDA

Por ejemplo supóngase que 2 sitios, A y B, ambos contienen copias de los objetos O1 y O2, y que la técnica 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 BeginS-lock O1 at sitio A S-lock O2 at sitio BX-lock O2 at sitio A X-lock O1 at sitio BX-lock O2 at sitio B X-lock O1 at sitio A

TRANSACCIÓN DISTRIBUIDACONTROL DE CONCURRENCIA

DISTRIBUIDACentralizadoCopia PrimariaTotalmente DistribuidoInterbloqueos Distribuidos

RECUPERACIÓN DISTRIBUIDAEjecución Normal y Protocolos

Comprometidos (Commit)Protocolo de Dos FasesReinicio luego de una fallaProtocolo de Tres Fases

T1 T2T1 T2T1 T2

En el lugar A

T1 T2T1 T2T1 T2

En el lugar B

T1 T2T1 T2T1 T2

Espera global

Page 22: Base de Datos Distribuidas - alfa.facyt.uc.edu.vealfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/exposici... · 2 Agenda Bases de Datos Distribuidas INTRODUCCION Un área

22

Agenda

Bases de Datos Distribuidas

CONTROL DE CONCURRENCIA DISTRIBUIDA

Para detectar este caso, existen tres algoritmos para detección de interbloqueos distribuidos:

• Centralizado: envía periódicamente todos los grafos de espera locales de cada sitio a un lugar designado para la detección de interbloqueos, y allí el algoritmo realiza una unión de todos los grafos locales recibidos formando un grafo de espera global en el que detecta interbloqueos.

TRANSACCIÓN DISTRIBUIDACONTROL DE CONCURRENCIA

DISTRIBUIDACentralizadoCopia PrimariaTotalmente DistribuidoInterbloqueos Distribuidos

RECUPERACIÓN DISTRIBUIDAEjecución Normal y Protocolos

Comprometidos (Commit)Protocolo de Dos FasesReinicio luego de una fallaProtocolo de Tres Fases

Agenda

Bases de Datos Distribuidas

CONTROL DE CONCURRENCIA DISTRIBUIDA

• Jerárquico: este algoritmo es orientado a BDD a nivel de países, en el que los sitios se forman en grupos por estados, y luego por país 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 envían periódicamente dichos grafos al lugar encargado de hacer el grafo estadal y así ver los interbloqueos estadales. Luego estos envían periódicamente ese grafo al lugar donde se encarga de hacer los grafos por país que a su vez hacen un grafo y lo envían al sitio que finalmente realiza el grafo de espera global.

TRANSACCIÓN DISTRIBUIDACONTROL DE CONCURRENCIA

DISTRIBUIDACentralizadoCopia PrimariaTotalmente DistribuidoInterbloqueos Distribuidos

RECUPERACIÓN DISTRIBUIDAEjecución Normal y Protocolos

Comprometidos (Commit)Protocolo de Dos FasesReinicio luego de una fallaProtocolo de Tres Fases

Page 23: Base de Datos Distribuidas - alfa.facyt.uc.edu.vealfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/exposici... · 2 Agenda Bases de Datos Distribuidas INTRODUCCION Un área

23

Agenda

Bases de Datos Distribuidas

CONTROL DE CONCURRENCIA DISTRIBUIDATRANSACCIÓN DISTRIBUIDA

CONTROL DE CONCURRENCIA DISTRIBUIDA

CentralizadoCopia PrimariaTotalmente DistribuidoInterbloqueos Distribuidos

RECUPERACIÓN DISTRIBUIDAEjecución Normal y Protocolos

Comprometidos (Commit)Protocolo de Dos FasesReinicio luego de una fallaProtocolo de Tres Fases

Y el último algoritmo es el más simple: aborta toda transacción que su tiempo de ejecución sobrepase un tiempo estipulado llamado time-out. Este tiene el problema que si se escoge mal el time-out ocurrirán muchos reinicios innecesarios.

Agenda

Bases de Datos Distribuidas

RECUPERACIÓN DISTRIBUIDATRANSACCIÓN DISTRIBUIDACONTROL DE CONCURRENCIA

DISTRIBUIDACentralizadoCopia PrimariaTotalmente DistribuidoInterbloqueos Distribuidos

RECUPERACIÓN DISTRIBUIDAEjecución Normal y Protocolos

Comprometidos (Commit)Protocolo de Dos FasesReinicio luego de una fallaProtocolo de Tres Fases

La recuperación de fallas en un DDBMS es mas complicado que las de un DBMS por:

• Aparecen nuevas clases de fallas: una falla de comunicación y la falla de algún sitio que se encontraba ejecutando una subtransacción.• O todas las transacciones llegan al commito no lo hacen, sin importar fallas de comunicación o de la localización de un sitio.

Esto es garantizado al usar un protocolo de commit.

Page 24: Base de Datos Distribuidas - alfa.facyt.uc.edu.vealfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/exposici... · 2 Agenda Bases de Datos Distribuidas INTRODUCCION Un área

24

Agenda

Bases de Datos Distribuidas

RECUPERACIÓN DISTRIBUIDATRANSACCIÓN DISTRIBUIDACONTROL DE CONCURRENCIA

DISTRIBUIDACentralizadoCopia PrimariaTotalmente DistribuidoInterbloqueos Distribuidos

RECUPERACIÓN DISTRIBUIDAEjecución Normal y Protocolos

Comprometidos (Commit)Protocolo de Dos FasesReinicio luego de una fallaProtocolo de Tres Fases

Ejecución Normal y Protocolos de Commit:

Durante la ejecución 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 transacción, los manejadores de transacciones en los sitios donde las subtransacciones se ejecutan son llamados subordinados (con respecto al coordinador de esa transacción).

Agenda

Bases de Datos Distribuidas

RECUPERACIÓN DISTRIBUIDATRANSACCIÓN DISTRIBUIDACONTROL DE CONCURRENCIA

DISTRIBUIDACentralizadoCopia PrimariaTotalmente DistribuidoInterbloqueos Distribuidos

RECUPERACIÓN DISTRIBUIDAEjecución Normal y Protocolos

Comprometidos (Commit)Protocolo de Dos FasesReinicio luego de una fallaProtocolo de Tres Fases

Protocolo de Dos Fases: Cuando el usuario decide hacer commit en una transacción, el comando de commit es mandado al coordinador para la transacción. Los pasos son los siguientes:

1. El coordinador manda un mensaje prepárense a cada subordinado.

2. Cuando el subordinado recibe el mensaje prepárense, decide si abortar o hacer commiten su subtransacción. Él fuerza la escritura de un abort o preparado en el log, y luego manda un mensaje de si o no al coordinador.

Page 25: Base de Datos Distribuidas - alfa.facyt.uc.edu.vealfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/exposici... · 2 Agenda Bases de Datos Distribuidas INTRODUCCION Un área

25

Agenda

Bases de Datos Distribuidas

RECUPERACIÓN DISTRIBUIDATRANSACCIÓN DISTRIBUIDACONTROL DE CONCURRENCIA

DISTRIBUIDACentralizadoCopia PrimariaTotalmente DistribuidoInterbloqueos Distribuidos

RECUPERACIÓN DISTRIBUIDAEjecución Normal y Protocolos

Comprometidos (Commit)Protocolo de Dos FasesReinicio luego de una fallaProtocolo 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 específico, fuerza la escritura de aborten el log, y manda un mensaje de aborten a los subordinados.

Agenda

Bases de Datos Distribuidas

RECUPERACIÓN DISTRIBUIDATRANSACCIÓN DISTRIBUIDACONTROL DE CONCURRENCIA

DISTRIBUIDACentralizadoCopia PrimariaTotalmente DistribuidoInterbloqueos Distribuidos

RECUPERACIÓN DISTRIBUIDAEjecución Normal y Protocolos

Comprometidos (Commit)Protocolo de Dos FasesReinicio luego de una fallaProtocolo 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 subtransacción. Cuando un subordinado commit fuerza la escritura de commit al log, y manda un mensaje de ack al coordinador, luego hace commit con su transacción.

5. Finalmente el coordinador recibe todos los ack de sus subordinados y escribe en el log end para la transacción.

Page 26: Base de Datos Distribuidas - alfa.facyt.uc.edu.vealfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/exposici... · 2 Agenda Bases de Datos Distribuidas INTRODUCCION Un área

26

Agenda

Bases de Datos Distribuidas

RECUPERACIÓN DISTRIBUIDATRANSACCIÓN DISTRIBUIDACONTROL DE CONCURRENCIA

DISTRIBUIDACentralizadoCopia PrimariaTotalmente DistribuidoInterbloqueos Distribuidos

RECUPERACIÓN DISTRIBUIDAEjecución Normal y Protocolos

Comprometidos (Commit)Protocolo de Dos FasesReinicio luego de una fallaProtocolo de Tres Fases

Reinicio luego de una falla: Al momento de hacer una recuperación se aplican los siguientes pasos:

*Si tenemos un commit o un abort de la transacción T, limpiamos la transacción, aplicamos REDO o UNDO (según el caso).Si este sitio es el coordinador, el cual puede determinar los commits y los aborts a partir del log, debemos periódicamente reenviar un commit o un abort a cada subordinado hasta que recibamos un ack. Después de recibidos los acks de todos los subordinados, se escribe un end en el log para T.

Agenda

Bases de Datos Distribuidas

RECUPERACIÓN DISTRIBUIDATRANSACCIÓN DISTRIBUIDACONTROL DE CONCURRENCIA

DISTRIBUIDACentralizadoCopia PrimariaTotalmente DistribuidoInterbloqueos Distribuidos

RECUPERACIÓN DISTRIBUIDAEjecución Normal y Protocolos

Comprometidos (Commit)Protocolo de Dos FasesReinicio luego de una fallaProtocolo de Tres Fases

*Si nos preparamos para escribir en log para la transacción 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 (según sea el caso) y escribimos end de la transacción en el log.

Page 27: Base de Datos Distribuidas - alfa.facyt.uc.edu.vealfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/exposici... · 2 Agenda Bases de Datos Distribuidas INTRODUCCION Un área

27

Agenda

Bases de Datos Distribuidas

RECUPERACIÓN DISTRIBUIDATRANSACCIÓN DISTRIBUIDACONTROL DE CONCURRENCIA

DISTRIBUIDACentralizadoCopia PrimariaTotalmente DistribuidoInterbloqueos Distribuidos

RECUPERACIÓN DISTRIBUIDAEjecución Normal y Protocolos

Comprometidos (Commit)Protocolo de Dos FasesReinicio luego de una fallaProtocolo de Tres Fases

*Si no nos preparamos, escribimos un commit o un abort en el registro del log para la transacción T; seguramente T no había 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 transacción 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

RECUPERACIÓN DISTRIBUIDATRANSACCIÓN DISTRIBUIDACONTROL DE CONCURRENCIA

DISTRIBUIDACentralizadoCopia PrimariaTotalmente DistribuidoInterbloqueos Distribuidos

RECUPERACIÓN DISTRIBUIDAEjecución Normal y Protocolos

Comprometidos (Commit)Protocolo de Dos FasesReinicio luego de una fallaProtocolo de Tres Fases

Es una mejora al protocolo de 2 fases. La idea básica es que, cuando el coordinador mande el mensaje prepárense y reciba el mensaje de si de todos los subordinados, manda a todos los sitios un mensaje de precommit. Cuando un número 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 ejecución normal y requiere que las fallas en los enlaces de comunicación no conlleven a la partición de la red, para asegurar estar libre de bloqueos. Por esta razón no se usa en la práctica.


Recommended