Consistencia y Replicación

45
Consistencia y Replicación Martínez González Gerardo Cruz Casas Hernando Tapia Contreras José Antonio

description

Consistencia y Replicación. Martínez González Gerardo Cruz Casas Hernando Tapia Contreras José Antonio. Confiabilidad Continuidad de trabajo ante fallas Mayor cantidad de copias  mejor protección contra corrupción de datos Rendimiento Escalabilidad en número - PowerPoint PPT Presentation

Transcript of Consistencia y Replicación

Page 1: Consistencia  y  Replicación

Consistencia y Replicación

Martínez González GerardoCruz Casas Hernando

Tapia Contreras José Antonio

Page 2: Consistencia  y  Replicación

¿Por qué replicar?

Confiabilidad◦Continuidad de trabajo ante fallas◦Mayor cantidad de copias mejor protección

contra corrupción de datosRendimiento

◦Escalabilidad en número◦Escalabilidad en área geográfica (menor tiempo

de acceso a copias cercanas)◦Consulta simultánea de datos

Page 3: Consistencia  y  Replicación

ReplicaciónTécnica Escalabilidad

+ escala - rendimientoPor lo tanto se usa replicación (caching)

para reducir el tiempo de acceso en alta escala.

Problemas: ◦Actualizar las réplicas consume ancho de

banda◦Mantener la consistencia en las copias es un

problema de escalabilidad (¿?)◦Sincronizar las réplicas

Page 4: Consistencia  y  Replicación

Modelos de Consistencia.

Contrato entre los procesos y el almacenamiento de datos:◦Si los procesos acuerdan obedecer ciertas

reglas, el almacenamiento promete trabajar correctamente.

◦Normalmente una operación de lectura debiese retornar la última actualización del dato.

◦Los modelos pueden ser: Centrados en los datos Centrados en el cliente

Page 5: Consistencia  y  Replicación

Modelos de Consistencia centrados en los datos.

Organización general de un almacenamiento lógico de datos, físicamente distribuidos y replicados a través de múltiples procesos.

Page 6: Consistencia  y  Replicación

Consistencia Estricta.

El más restrictivo de todos. Cualquier lectura sobre un ítem de dato

x retorna un valor correspondiente con la más reciente escritura sobre x (en términos de un hipotético reloj de tiempo global)

Page 7: Consistencia  y  Replicación

Consistencia Secuencial.

La consistencia secuencial satisface:

El resultado de una ejecución es el mismo si todas las operaciones (lectura y escritura) de todos los procesos sobre el dato fueran ejecutadas en algún orden secuencial y las operaciones de cada proceso individual aparecen en esta secuencia en el orden especificado por su programa.

Page 8: Consistencia  y  Replicación

Proceso P1 Proceso P2 Proceso P3

x = 1;print ( y, z);

y = 1;print (x, z);

z = 1;print (x, y);

Se tienen tres procesos que se ejecutan concurrentemente, todos ellos inicializaron sus variables en 0.

Page 9: Consistencia  y  Replicación

x = 1;print (y, z);y = 1;print (x, z);z = 1;print (x, y);

Prints: 001011

(a)

x = 1;y = 1;print (x,z);print(y, z);z = 1;print (x, y);

Prints: 101011

(b)

y = 1;z = 1;print (x, y);print (x, z);x = 1;print (y, z);

Prints: 010111

(c)

y = 1;x = 1;z = 1;print (x, z);print (y, z);print (x, y);

Prints: 111111

(d)

Cuatro secuencias válidas, el eje vertical es el tiempo. Signature = concatenación de la salida en orden P1 P2 P3Notar que la linealidad (orden en un mismo color) se mantiene.

Page 10: Consistencia  y  Replicación

Consistencia Secuencial.

a) Almacén de datos secuencialmente consistente

Page 11: Consistencia  y  Replicación

Consistencia Causal.

Debilitamiento de la consistencia secuencial

Se diferencian eventos que están potencialmente relacionados en forma causal y otros que no, los no relacionados se dicen concurrentes.

Page 12: Consistencia  y  Replicación

Consistencia Causal.

Todas las escrituras que están parcialmente relacionadas en forma causal son vistas por todos los procesos en el mismo orden. Las concurrentes pueden ser vistas en distinto orden sobre diferentes máquinas.

Page 13: Consistencia  y  Replicación

Posible dependencia

Si son dependientes, todos deben ver las escrituras en el mismo orden.

Page 14: Consistencia  y  Replicación

MODELOS DE CONSISTENCIA CENTRADA EN EL CLIENTE

•Este tipo de modelos trata una clase especial de almacenamientode datos distribuidos.

•Los almacenamiento de datos referidos están caracterizadospor una falta de actualizaciones simultáneas, o cuandodichas actualizaciones ocurren, pueden ser fácilmenteresueltas.

•La mayoría de las operaciones son de lectura.

•La introducción de modelos de consistencia centrados en elcliente permiten esconder muchas inconsistencias demanera relativamente fácil.

Page 15: Consistencia  y  Replicación

En esencia la consistencia centrada en el cliente provee garantías para un único cliente concerniente a la consistencia de accesos a los datos de ese cliente.

MODELOS DE CONSISTENCIA CENTRADA EN EL CLIENTE

Page 16: Consistencia  y  Replicación

Consistencia momentánea

Sistema de bases de datos, difícilmente realizan actualización, en su mayoría leen los datos

DNS, está dividido en dominios, cada dominio es asignado a una autoridad de asignación, que actúa como propietario del dominio, y sólo se le permite actualizar a esta autoridad, no se necesita manejar conflictos escritura-escritura, solamente lectura-escritura, se tolera una actualización lenta

World Wide Web, las páginas web son actualizadas por una sola autoridad. Inconsistencia en la caché.

Se tolera cierto grado de inconsistencia.

Todas las réplicas convergen en copias idénticas

Page 17: Consistencia  y  Replicación

Consistencia momentánea

Solo requiere la garantía de que todas las actualizaciones se propaguen a todas las réplicas.

La implementación es barata

Existen problemas cuando en tiempo corto se accede a réplicas diferentes

Page 18: Consistencia  y  Replicación

Consistencia momentánea

Page 19: Consistencia  y  Replicación

Sea xi[t] la versión del elemento de dato x en la copia local Li al tiempo t.

La versión xi[t] es es el resultado de una serie de operaciones de escritura sobre Li desde la inicialización, denotada WS(xi[t]).

Si WS(xi[t1]) fue además realizada sobre lo copia local Lj al tiempo posterior t2 entonces la serie se escribirá WS(xi[t1];xj[t2]).

Si el orden de las operaciones o el tiempo son claros por el contexto, el índice del tiempo se omite.

Notación:

Page 20: Consistencia  y  Replicación

Se dice que un dato ofrece consistencia de lecturas monotónicas si y sólo si la siguiente condición se cumple:

◦Si un proceso lee el valor de un ítem de dato x, cualquier operación de lectura sucesiva sobre x por el mismo proceso siempre retornará el mismo valor o un valor más reciente.

Lectura monotónicas

Page 21: Consistencia  y  Replicación

Garantiza que si un proceso ha visto un valor de x al tiempo t, nunca verá una version más vieja de x en un tiempo posterior.

Ejemplo; base de datos correo electrónico

Lectura monotónicas

Page 22: Consistencia  y  Replicación

Las escrituras deben ser propagadas en el orden correcto a todas las copias del almacenamiento de datos.

Se debe cumplir que:

◦Una operación de escritura por un proceso sobre un elemento de datos x es completada antes que cualquier otra operación sucesiva de escritura sobre x por el mismo proceso.

Escrituras monotónicas

Page 23: Consistencia  y  Replicación

Es decir, una operación de escritura sobre una copia del elemento x se realiza sólo si esa copia se ha actualizado mediante cualquier operación de escritura previa.

Si es necesario, la nueva escritura debe esperar a que terminen otras escrituras anteriores.

Escrituras monotónicas

Page 24: Consistencia  y  Replicación

Ejemplo: biblioteca de software; al actualizar, se actualizará de version.

Escrituras monotónicas

Page 25: Consistencia  y  Replicación

A veces es más importante garantizar que si yo escribo un dato, yo siempre vea el valor actualizado no importa de donde haga la siguiente lectura, por lo tanto, un almacén de datos provee consistencia lea sus escrituras si se cumple que:◦El efecto de una operación de escritura por un

proceso sobre un elemento de datos x será siempre visto por las sucesivas operaciones de lectura sobre x por el mismo proceso.

Lea sus Escrituras

Page 26: Consistencia  y  Replicación

Una operación de escritura siempre se completa antes de una operación de lectura sucesiva del mismo proceso, independiente del lugar.

Ejemplo, Cache de un documento. Si el editor y el navegador se integran en un solo programa el caché se invalida cuando la página es actualizada

Lea sus Escrituras

Page 27: Consistencia  y  Replicación

Lea sus Escrituras

Page 28: Consistencia  y  Replicación

La idea de este esquema de consistencia es garantizar que si alguien va a modificar el valor de un dato, antes haya leído la última actualización de éste.

Un almacén de datos provee consistencia de escrituras siguen lecturas si se cumple que:◦Una operación de escritura de un proceso sobre

un elemento de datos x realizada luego de leer ese dato x, se realizó garantizadamente sobre el valor más reciente de x.

Las escrituras siguen a las lecturas

Page 29: Consistencia  y  Replicación

Las escrituras siguen a las lecturas

Cualquier operación sucesiva de un proceso sobre un elemento de datos x se realizará sobre una copia de x actualizada con el valor más reciente leído por el proceso.

Ejemplo; una red de un grupo de noticias, garantiza que los usuarios vean el anuncio de una respuesta a un artículo, después de haber visto el artíiculo original.

Page 30: Consistencia  y  Replicación

Las escrituras siguen a las lecturas

Page 31: Consistencia  y  Replicación

Un punto clave para un sistema distribuido que soporta replicación es decidir donde, cuando y por quien ubicar las réplicas.

Se divide en 2:◦Ubicación de servidores de réplicas (encontrar

los mejores lugares para colocar un servidor)◦Ubicación del contenido (encontrar los mejores

servidores para colocar el contenido)

Administración de las Replicas

Page 32: Consistencia  y  Replicación

No es un problema muy estudiado

Qiu y colaboradores toman en cuenta la distancia entre clientes y un punto de partida

La distancia puede medirse por la latencia o el ancho de banda

Seleccionan a un servidor cuyo distancia promedio entre el servidor y sus clientes sea minimo

Ubicación del servidor de réplicas

Page 33: Consistencia  y  Replicación

Radoslavov y colaboradores no toman en cuenta la posición de los clientes, solo toman en cuenta la topología y al que tenga el mayor número de interfaces de red.

Metodos con alto costo de procesamiento

Szymaniak y colaboradores toman en cuenta regiones con más demanda y uno de sus nodos es la réplica

Ubicación del servidor de réplicas

Page 34: Consistencia  y  Replicación

Ubicación y replicación del contenido

Page 35: Consistencia  y  Replicación

Replicas permanentes

Es el primer conjunto de réplicas.Comúnmente son un número pequeño de réplicas.

Ejemplos:

Página web. Múltiples copias cercanas y los requerimientos son dirigidos a cada una a la vez mediante algún esquema (por ejemplo round-robin).Múltiples copias lejanas a las cuales se elige entrar (mirror).

Page 36: Consistencia  y  Replicación

Replicas iniciadas por servidores

Copias del almacén de datos para mejorar la performance.Réplicas creadas y actualizadas bajo la iniciativa del dueño del almacén de datos (servidor)Problema principal: ¿Dónde poner las réplicas? (cerca/lejos) ¿Cuándo actualizarlas?

Page 37: Consistencia  y  Replicación

Replicas iniciadas por servidores

Page 38: Consistencia  y  Replicación

Replicas iniciadas por servidores

Cada servidor cuenta el número de accesos.

Cada cliente accede al servidor más cercano.

Si C1 y C2 comparten el servidor más cercano (P), y éste no tiene réplica, se toma como si P fuese quien realiza la consulta.

Page 39: Consistencia  y  Replicación

Replicas iniciadas por el cliente

Más conocidas como caché de cliente.Copia temporal de datos para el uso del cliente.Mejora el tiempo de acceso a datos.Útil si la mayoría de las operaciones son de lectura.Caché puede ser compartido entre un grupo de clientes cercanosTiempo limitadoUso de servidores cachéSe está volviendo más efectivo la replicación iniciada por el servidor debido a las mejoras en la red y al desempeño de los servidores.

Page 40: Consistencia  y  Replicación

Distribución de Contenido

Page 41: Consistencia  y  Replicación

Estado vs. Operaciones

Propagar notificaciones.◦ Usan protocolos de invalidación.◦ Indica que parte del almacén de datos es invalido.◦ Se necesita actualizar el almacén de datos.

Transferir datos entre copias◦ La relación de escritura-lectura es grande.◦ Se propagan los datos modificados y se registran cambios.◦ Varias modificaciones en un solo mensaje.

Propagar la operación a todas las copias◦ Se indica a cada replica la operación de actualización a realizar.◦ Se llama también: Replicación activa.◦ Similar al proceso efectuado en un Raid 1.

Page 42: Consistencia  y  Replicación

Protocolos Push y Pull.

Push◦Protocolo basado en servidor.◦Las actualizaciones se propagan a otras replicas sin

que estas las soliciten.◦Actualizan los cachés de los clientes.◦Hay datos consistentes al momento de solicitarlos.

Pull◦Protocolo basado en el cliente.◦El cliente solicita a otro servidor que le envíe

cualquier actualización que tenga al momento.◦Estrategia aplicada en los cachés Web.

Page 43: Consistencia  y  Replicación

Difusión simple vs. Multidifusion.

Difusión simple.◦Se envía la actualización a N servidores.◦Se envían N mensajes de actualización.

Multidifusion.◦La red subyacente se encarga de enviar un

mensaje a varios destinatarios.◦Suele ser eficiente combinada con una red

pequeña y utilizando el método push.

Page 44: Consistencia  y  Replicación

Protocolos de escritura

Escritura remota.◦ La primaria realiza la actualización en su copia local.◦ Posteriormente se remite la actualización a los servidores

de respaldo.◦ Se envía un acuse a quien inicio el proceso de

actualización.

Escritura local.◦ Se pueden realizar varios procesos de escritura local.◦ Se envían las actualizaciones a los servidores de

respaldo una vez terminados los procesos.◦ Se aplica a computadoras móviles capaces de operar

desconectadas, al terminar todo se vuelve al servidor primario.

Page 45: Consistencia  y  Replicación

Protocolos de escritura replicados.

Replicación activa.◦Cada replica con un proceso asociado que realiza

operaciones de actualización.◦Las operaciones deben realizarse en el mismo orden

en cualquier parte.◦Debe existir un cronometro llamado secuenciador.

Protocolo basado en quórum.◦Se utiliza votación.◦Requiere que los clientes adquieran permiso de

varios servidores para leer o escribir elementos de datos replicados.