Bases de Datos Distribuidas Replicación de Datos Fragmentación

Anuncio
Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación
Elementos de Bases de Datos – 2do. Cuatrimestre de 2004
Bases de Datos Distribuidas
Elementos de
Bases de Datos
Una base de datos distribuida consiste de una
colección de nodos o sitios, cada uno representando una computadora y su respectivo medio
de almacenamiento.
Dpto.Ciencias e Ingeniería de la Computación
Universidad Nacional del Sur
Estudiaremos los siguientes tópicos:
„
Lic. María Mercedes Vitturini
[[email protected]]
„
„
Clase 21
1er. Cuatrimestre de 2004
„
Cómo almacenar la información.
Cuestiones de transparencia de red y denominación
de los items de datos.
Procesamiento de transacciones.
Tratamiento de fallos y deadlocks.
Elementos de Bases de Datos
Clase 21
Almacenamiento de Datos
Distribuido
Replicación de Datos
Replicación: el sistema mantiene varias réplicas
idénticas de una relación r. Cada réplica se
almacena en un sitio diferente.
Fragmentación: una relación r se particiona en
varios fragmentos. Cada fragmento es
almacenado en un sitio diferente.
Replicación y Fragmentación: una relación r es
particionada en varios fragmentos y el sistema
mantiene varias copias de éstos.
Elementos de Bases de Datos
Clase 21
2
+ Disponibilidad: si uno de los sitios que contiene a la
relación r falla, entonces se la puede buscar en otro
sitio.
+ Incremento del paralelismo: en casos de mayoría de
accesos de lectura, los sitios procesando consultas
sobre r se ejecutan en simultáneo.
– Incremento del overhead en actualizaciones: el
sistema debe asegurar que TODAS las réplicas de la
relación r sean consistentes. Cada actualización sobre
la relación r debe ser propagada a los sitios
conteniendo las respectivas réplicas.
Elementos de Bases de Datos
Clase 21
3
4
Fragmentación Horizontal
Fragmentación de los datos
Consiste en dividir una relación r en fragmentos
r1, r2,…, rn.
Estos fragmentos contienen información suficiente
como para reconstruir la relación original r.
Tipos de fragmentación:
Fragmentación Horizontal (por filas): separa a una
relación r separando las tuplas en subconjuntos.
„ Fragmentación Vertical (por columnas): separa a una
relación r a través de descomposiciones.
„ Combinada: separa a una relación r horizontal y
verticalmente.
Apellido
Andrade
García
García
López
Lucceti
Ramírez
Reyes
Sánchez
Nombres
Luis
Federico
Federico
Ernesto
Marcos
José
Francisco
Andrés
Registro
44455
35689
25689
56661
52256
52231
42467
48995
Domicilio
Casanova 654
Alem 1233
Alem 1233
San Juan 20
Córdoba 456
Salta 102
12 de Octubre 980
Paraguay 20
„
Elementos de Bases de Datos
Clase 21
5
r1
Apellido
Lucceti
Ramírez
Reyes
Sánchez
Nombres
Marcos
José
Francisco
Andrés
Registro
52256
52231
42467
48995
Apellido
Andrade
García
García
López
Código-Carrera
128
50
128
50
128
50
128
50
Nombres
Luis
Federico
Federico
Ernesto
Domicilio
Córdoba 456
Salta 102
12 de Octubre 980
Paraguay 20
Registro
44455
35689
25689
56661
Código-Carrera
128
50
128
50
Elementos de Bases de Datos
Clase 21
r
Domicilio
Casanova 654
Alem 1233
Alem 1233
San Juan 20
Código-Carrera
128
50
128
50
r = r1 ∪ r2
r2
6
1
Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación
Elementos de Bases de Datos – 2do. Cuatrimestre de 2004
Fragmentación Vertical
Id-Tupla
1
2
3
4
5
6
7
8
r
Apellido
Andrade
García
García
López
Lucceti
Ramírez
Reyes
Sánchez
Nombres
Luis
Federico
Federico
Ernesto
Marcos
José
Francisco
Andrés
Registro
44455
35689
25689
56661
52256
52231
42467
48995
Domicilio
Casanova 654
Alem 1233
Alem 1233
San Juan 20
Córdoba 456
Salta 102
12 de Octubre 980
Paraguay 20
Transparencia de Red
Código-Carrera
128
50
128
50
128
50
128
50
La transparencia de red es el grado con que el
usuario del sistema puede despreocuparse de los
detalles de cómo y dónde los items de datos son
almacenados en un sistema distribuido.
r = r1 |><| r2
Id-Tupla
1
2
3
4
5
6
7
8
Apellido
Andrade
García
García
López
Lucceti
Ramírez
Reyes
Sánchez
r1
Nombres
Luis
Federico
Federico
Ernesto
Marcos
José
Francisco
Andrés
Registro
44455
35689
25689
56661
52256
52231
42467
48995
Id-Tupla
1
2
3
4
5
6
7
8
Domicilio
Casanova 654
Alem 1233
Alem 1233
San Juan 20
Córdoba 456
Salta 102
12 de Octubre 980
Paraguay 20
Código-Carrera
128
50
128
50
128
50
128
50
Elementos de Bases de Datos
Clase 21
r2
7
En un sistema centralizado se puede asegurar que
todos los elementos de datos (relaciones,
fragmentos y réplicas) tengan nombres únicos.
En sistemas distribuidos, debemos asegurar que
dos sitios no usen el mismo nombre para distintos
items de datos.
Una solución es requerir que todos los items estén
registrados en un servidor central de nombres.
„
El servidor de nombres es el cuello de botella y esto influye
sobre la performance del sistema.
Si el servidor de nombres se cae, ningún otro sitio puede
continuar.
Elementos de Bases de Datos
Clase 21
9
Nombrado de fragmentos y réplicas
Los fragmentos y las réplicas pueden utilizar una técnica
similar.
„
Ejemplo, la segunda réplica del tercer fragmento de la relación
cuentas en el sitio 11 puede nombrarse como
sitio11.cuentas.f3.r2.
Sin embargo, no es deseable que el usuario pueda
referirse a un(una) fragmento(réplica) particular.
El sistema debe determinar que réplica referenciar en
caso de un read, así como actualizar todas las réplicas en
caso de un write.
Similarmente, el sistema debería ocultar como se
fragmentan los datos.
Reconstruir la relación original puede ser ineficiente.
Elementos de Bases de Datos
Clase 21
„
„
„
„
Nombres de los datos.
Replicación de los items de datos.
Fragmentación de los items de datos.
Ubicación de los fragmentos y las réplicas.
Elementos de Bases de Datos
Clase 21
8
Nombramiento de los datos
Nombramiento de los datos
„
Se consideran distintos tipos de transparencia:
11
Otra alternativa es que cada servidor agregue como
prefijo a cada nombre que crea el nombre de su sitio.
Por ejemplo: sitio11.cuentas.
Esta solución falla al principio de transparencia.
Esto puede solucionarse si el sistema crea un
conjunto de nombres alternativos o alias.
Los usuarios denominan a los datos por su nombre y
el sistema los traduce a los nombres completos.
Usando alias, el usuario debe despreocuparse de la
ubicación física de los items y no se verá afectado si
el administrador del sistema desea mover un item de
datos de un sitio a otro.
Elementos de Bases de Datos
Clase 21
10
Transparencia y actualizaciones
Proveer transparencia para los usuarios que
actualizan la base de datos es más difícil que
proveer transparencia para usuarios lectores.
El principal problema es asegurar que todas las
réplicas y los respectivos fragmentos de un item
de dato sean actualizados.
Š Si se actualiza un item de datos fragmentado, debe
determinarse que fragmento(s) debe(n) modificarse,
dependiendo si se utiliza fragmentación horizontal,
vertical o combinada.
Š Si se actualiza un item de datos replicado, debe
actualizarse cada una de las réplicas.
Elementos de Bases de Datos
Clase 21
12
2
Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación
Elementos de Bases de Datos – 2do. Cuatrimestre de 2004
Modelo Transaccional
Distribuido
Modelo de Transacciones
Distribuidas
El acceso a los diferentes elementos de datos en
los sistemas distribuidos suele hacerse a través de
transacciones.
Las transacciones deben respetar las propiedades
de atomicidad, consistencia, aislamiento y
durabilidad.
Se distinguen dos tipos de transacciones:
„
„
Transacciones locales: sólo tienen acceso a datos en una
base de datos local.
Transacciones globales: acceden a datos que están en
sitios diferentes de donde se inició la transacción
Elementos de Bases de Datos
Clase 21
El gestor de transacciones: encargado de aquellas
transacciones (o subtransacciones) que acceden a los
datos almacenados en el sitio local.
„ El coordinador de transacciones: encargado de la
ejecución de las transacciones (locales y globales)
iniciadas en el sistema.
„
La tarea del gestor es similar en muchos aspectos
a la usada en un sistema centralizado.
Elementos de Bases de Datos
Clase 21
13
Modelo Transaccional Distribuido
Coordinador de
Transacciones
Coordinador de
Transacciones
Cada sitio de un sistema contiene dos
subsistemas:
14
Modelo Transaccional
Distribuido
Tareas del Gestor de Transacciones:
Mantener una bitácora para recuperaciones
ante fallos.
„ Participar en un apropiado esquema de
control de concurrencia para coordinar la
ejecución concurrente de transacciones en
su sitio.
„
Gestor de
Transacciones
. . .
Gestor de
Transacciones
Computadora N
Computadora 1
Elementos de Bases de Datos
Clase 21
Modelo Transaccional
Distribuido
„
„
Comenzar la ejecución de una transacción.
Descomponer una transacción en un
número de subtransacciones y distribuirlas
en los sitios apropiados para su ejecución.
Coordinar la terminación de una
transacción, lo que puede resultar en que
las transacciones estén cometidas en todos
los sitios o abortadas en todos los sitios.
Elementos de Bases de Datos
Clase 21
16
Modos de fallo del sistema
Tareas del Coordinador de
Transacciones:
„
Elementos de Bases de Datos
Clase 21
15
17
Además de sufrir de los mismos tipos de
fallos que los sistemas centralizados, en
los sistemas distribuidos pueden ocurrir:
„
„
„
„
Fallo de un sitio.
Pérdida de mensajes.
Fallo de un enlace de comunicación.
División de la red.
Elementos de Bases de Datos
Clase 21
18
3
Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación
Elementos de Bases de Datos – 2do. Cuatrimestre de 2004
Datos Lógicos y Datos Físicos
Protocolos a estudiar
En un sistema distribuido existen dos niveles de datos:
lógicos o globales y físicos o locales.
Los criterios de compatibilidad entre bloqueos son los
mismos que en sistemas centralizados (solamente se
permiten lecturas simultáneas).
Si tenemos una única copia de un dato A, entonces el dato
lógico y el dato físico son iguales.
Si un dato A tiene n copias A1,…,An, entonces las
transacciones solicitando un item A deben enviar mensajes
de requerimientos de bloqueo al sitio donde reside la copia.
El gestor de bloqueos del sitio puede conceder o negar el
bloqueo, enviando el mensaje respectivo.
Protocolos basados en Bloqueo (Locking):
Read-Locks-One / Write-Locks-All (ROWA).
„ Por mayoría (Majority Locking).
„ "k-de-n" (intermedio entre ROWA y por mayoría).
„ Sitio Primario.
„ Tokens de Copia Primaria.
„ Nodo Central.
„
Buscando Serializabilidad:
„
„
Protocolo de bloqueo de dos fases.
Protocolo de bloqueo de dos fases estricto.
Buscando Atomicidad:
„
„
Protocolo de compromiso de dos fases.
Protocolo de compromiso de tres fases.
Elementos de Bases de Datos
Clase 21
Performance General
La comunicación entre sitios se realiza mediante el
envío y la recepción de mensajes.
La cantidad de mensajes que se transmiten en la red
condicionará la performance general del sistema.
Podemos distinguir dos tipos de mensajes:
–
–
Mensajes de Control: que indican requerimientos o concesión
de bloqueos, estados de cometido o de aborto, estados de
deadlock, etc.
Mensajes de Datos: que contienen datos puros, leídos de o a
ser escritos en la base de datos.
Bajo ciertas condiciones los mensajes de control
cuestan lo mismo que los de datos, pero en general los
mensajes de datos Elementos
son más
caros.
de Bases de Datos
Clase 21
21
Protocolos de Bloqueo
Distribuidos
20
Protocolos de Bloqueo
Distribuidos
Los diferentes protocolos de bloqueo vistos para
entornos centralizados pueden utilizarse para sistemas
distribuidos. Sin embargo requieren de algunas
adaptaciones.
Como en el caso anterior, los tipos de bloqueos
considerados son:
„
Compartidos.
„
Exclusivos
Deben distinguirse entre el ítem global o lógico e ítem
local o físico.
En un sistema distribuido, el bloqueo de datos debe ser
del ítem global.
Elementos de Bases de Datos
Clase 21
22
Read-Locks-One / Write-Locks-All
La acción de realizar un lock sobre un ítem lógico
A involucra obtener los locks sobre las copias
físicas de A.
Si una transacción necesita un lock de un item
de dato del que existe una única copia, debe
enviar un mensaje lock-request al sitio donde
reside la copia. El gestor de bloqueos del sitio
otorga o no el lock, contestando con un mensaje
la decisión.
Si existen varias copias de un item, la traducción
del lock lógico a lock físico puede realizarse de
varias maneras.
Elementos de Bases de Datos
Clase 21
Elementos de Bases de Datos
Clase 21
19
23
Se respetan las siguientes reglas:
Para obtener un read-lock sobre un item de dato A, una
transacción debe obtener un read-lock sobre una copia
de A.
Para obtener un write-lock sobre un item de dato A, una
transacción debe obtener un write-lock sobre cada copia
de A.
Las reglas para conceder bloqueos son:
– Un read-lock es concedido sobre una copia si ninguna
otra transacción tiene un write-lock sobre la copia.
– Un write-lock es concedido sobre una copia si ninguna
otra transacción tiene un read-lock o un write-lock sobre
la copia.
Elementos de Bases de Datos
Clase 21
24
4
Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación
Elementos de Bases de Datos – 2do. Cuatrimestre de 2004
Read-Locks-One / Write-Locks-All
Supongamos que existen n copias de un dato A.
Cuando se realiza un write-lock sobre un item A, se
necesitan enviar 2n mensajes de control (n para requerir
el bloqueo y n de concesión del mismo) y n mensajes de
datos.
Cuando se realiza un read-lock sobre un item A, se
necesita conocer un sitio donde A existe y enviar el
requerimiento de bloqueo.
Si se concede el bloqueo, tenemos 1 mensaje de control y 1
mensaje de datos. Existe un único mensaje de control pues la
concesión del bloqueo viene con el dato.
„ Si no se concede el bloqueo, se debe enviar el requerimiento a
otro sitio o se espera.
Read-Locks-One / Write-Locks-All
Mensaje de Control (Pedido)
Mensaje de Control (Si/No)
Mensaje de Dato
S2
S0
S3
.
.
.
„
Elementos de Bases de Datos
Clase 21
25
Read-Locks-One / Write-Locks-All
Mensaje de Control (Pedido)
Mensaje de Control (Si) + Dato
S0
S2
.
.
.
Sn
Elementos de Bases de Datos
Clase 21
27
Deadlocks en escrituras en ROWA
Mensaje de Control (Pedido)
Mensaje de Control (Si)
S1
S2
Si
S3
Sj
S4
Si espera respuesta
positiva de S4 y S5.
S5
Elementos de Bases de Datos
Clase 21
Sn
Escrituras
Elementos de Bases de Datos
Clase 21
26
Read-Locks-One / Write-Locks-All
Este protocolo se comporta de manera apropiada en
entornos donde predominan las lecturas.
Ejemplo: una guía telefónica on-line, donde los datos se
actualizan en períodos fijos y las lecturas son en todo
momento las operaciones predominantes.
Cuando se solicita un pedido de escritura y el mismo no
puede ser otorgado, si se decide esperar (en cada sitio)
se puede entrar en deadlock.
Cuando se solicita un pedido de lectura y el mismo no
puede ser otorgado, en general se espera (no se solicita
la lectura a otro lugar) porque lo más probable es que
otro sitio esté escribiendo el dato.
S1
S3
Lecturas
S1
Sj espera respuesta
positiva de S1 S2 y S3.
29
Elementos de Bases de Datos
Clase 21
28
Majority Locking
Se respetan las siguientes reglas:
Para obtener un read-lock sobre un item de dato
A, una transacción debe obtener un read-lock
sobre una mayoría de A.
Para obtener un write-lock sobre un item de dato
A, una transacción debe obtener un write-lock
sobre una mayoría de A.
Las reglas para conceder bloqueos son similares al
protocolo anterior.
Se asume que el número (n) de copias es impar, y la
mayoría es (n+1)/2. Elementos de Bases de Datos
Clase 21
30
5
Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación
Elementos de Bases de Datos – 2do. Cuatrimestre de 2004
Majority Locking
Majority Locking
(n+1)/2 representa la mayoría en los casos en que n
es impar.
La fórmula general para obtener la mayoría es:
Round((n+1)/2)
Round realiza el redondeo de un número.
Si la parte decimal de un valor x es menor que 0.5,
Round(x) retorna el mayor entero menor a x.
Si la parte decimal de un valor x es mayor o igual que
0.5, Round(x) retorna el menor entero mayor a x.
Asumiento esto, la mayoría para n = 5 es 3, y la
mayoría para n = 6 es 4.
Elementos de Bases de Datos
Clase 21
Mensaje de Control (Si/No)
Elementos de Bases de Datos
Clase 21
31
Mensaje de Control (Pedido)
Mensaje de Control
S1
Mensaje de Control + Dato
Mensaje de Dato
S2
S0
S0
S5
S5
Elementos de Bases de Datos
Clase 21
33
34
No hay deadlocks en escrituras
Mensaje de Control (Pedido)
Este protocolo se comporta de manera apropiada en
entornos donde predominan las escrituras.
Mensaje de Control (Si)
Liberar Pedido
S
Ejemplo: un sistema de reserva de pasajes, donde los datos
se modifican constantemente.
Cuando se solicita un pedido de lectura o escritura,
sólo un sitio puede obtener la mayoría por lo que no
existe riesgo de deadlock.
Cuando se solicita un dato y fracasa el pedido, se
puede esperar que se liberen copias para obtener la
mayoría, o bien se aborta la transacción.
En caso de espera, debe garantizarse que un sitio no
entre en estado de inanición (en espera contínua).
Elementos de Bases de Datos
Clase 21
S4
En este caso, todos los sitios
contactados envían el dato pero
se procesa el que llega primero.
Majority Locking
„
S3
Lecturas
S4
Elementos de Bases de Datos
Clase 21
S1
S2
S3
Escrituras
32
Majority Locking
Majority Locking
Mensaje de Control (Pedido)
Supongamos que existen n copias de un dato A.
Cuando se realiza un write-lock sobre un item A,
se necesitan enviar n+1 mensajes de control
((n+1)/2 para requerir el bloqueo y (n+1)/2 de
concesión del mismo) y n mensajes de datos (se
escriben todas las copias).
El número de mensajes de control es similar si se
realiza un read-lock pero se atiende sólo 1
mensaje de datos.
Si la transacción corre en el sitio de una de las
copias, se pueden omitir algunos mensajes.
35
1
S2
Si
Luego,
Si
puede
enviar los datos a
todos los sitios.
S3
Como Sj no obtiene
mayoría, libera los
bloqueos obtenidos.
Sj
S4
S5
Elementos de Bases de Datos
Clase 21
36
6
Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación
Elementos de Bases de Datos – 2do. Cuatrimestre de 2004
Estrategia k-de-n
Supongamos que existen n copias del dato. Sea k un
valor tal que n/2 < k ≤ n.
Para obtener un write-lock sobre un item de dato A,
una transacción debe obtener un write-lock sobre k
copias de A.
Para obtener un read-lock sobre un item de dato A, una
transacción debe obtener un read-lock sobre un total
de n-k+1 copias de A.
Notemos que no es posible que existan read-locks y
write-locks simultáneamente ya que se necesitarían n+1
copias del dato A y se cuenta solamente con n.
Como k > n/2, no es posible que existan dos write-locks a
la vez.
Elementos de Bases de Datos
Clase 21
Mensaje de Control (Si/No)
Mensaje de Dato
La estrategia n-de-n deriva enWrite-Locks-All.
La estrategia (n+1)/2-de-n deriva en Majority
Locking.
A medida que k se incrementa, el protocolo se
desempeña mejor en situaciones en donde se
realizan lecturas más frecuentemente.
A medida que k se decrementa, el protocolo se
desempeña mejor en situaciones donde
predominan las escrituras.
Elementos de Bases de Datos
Clase 21
37
Estrategia 4-de-5
Mensaje de Control (Pedido)
Estrategia k-de-n
Estrategia 4-de-5
Mensaje de Control (Pedido)
S1
Mensaje de Control
S2
S0
S3
S4
Escrituras
Elementos de Bases de Datos
Clase 21
S3
S4
Lecturas
En este caso, todos los sitios
contactados envían el dato pero
se procesa el que llega primero.
S5
S5
Elementos de Bases de Datos
Clase 21
39
Ejemplos de Estrategia k-de-n
40
Temas de la clase de hoy
Con la estrategia 4-de-5 tenemos un protocolo libre
de deadlocks que permite hasta 2 lecturas en
simultáneo (4 locks para escribir, 2 locks para leer).
Con la estrategia 5-de-7 tenemos un protocolo libre
de deadlocks que permite hasta 2 lecturas en
simultáneo (5 locks para escribir, 3 locks para leer).
Con la estrategia 6-de-7 tenemos un protocolo libre
de deadlocks que permite hasta 3 lecturas en
simultáneo (6 locks para escribir, 2 locks para leer).
Elementos de Bases de Datos
Clase 21
S1
Mensaje de Control + Dato
S2
S0
38
41
Sistemas Distribuidos
„
„
„
Replicación y Fragmentación de Datos.
Datos Físicos y Datos Lógicos.
Protocolos de control de concurrencia:
Š ROWA, Mayoría, K-n
Bibliografía
„
„
“Principles of Database and Knowledge-Base
Systems” – J. Ullman. Capítulo 10.
“Fundamentos de Bases de Datos” – A.
Silberschatz. Capítulo 18.
Elementos de Bases de Datos
Clase 21
42
7
Descargar