Consistencia y Replicación Segunda parte Modelos de Consistencia Centrados en el Cliente
Modelos de Consistencia Centrados en el Cliente Caracterís4cas: Bajo número de actualizaciones simultáneas Fácil resolución entre actualizaciones concurrentes. Generalmente son operaciones de lectura. Modelo de consistencia bastante débil (consistencia eventual). Consistencia garan4zada para un único cliente, por lo tanto muchas inconsistencias son ocultadas fácilmente.
Consistencia Momentánea Hasta qué punto los procesos en realidad operan de manera concurrente, y hasta qué punto la consistencia necesita garan4zarse, puede variar. En muchos sistemas de bases de datos, la mayoría de los procesos dimcilmente realizan alguna vez operaciones de actualización; en su mayoría leen datos de la base de datos. Sólo uno, o muy pocos procesos realizan operaciones de actualización. Entonces, la pregunta es qué tan rápido deben estar disponibles las actualizaciones para los procesos de sólo lectura. Normalmente no hay conflictos de escritura- escritura que resolver: Por ejemplo, en DNS, cada dominio es asignado a una autoridad que es la única que puede actualizar datos en ese dominio. En el WWW, las páginas son actualizadas por una sola autoridad, p. ej. Webmaster. Para mejorar la eficiencia, normalmente se usa la copia en una cache local. Estos son casos de bases de datos replicadas y distribuidas de gran escala que toleran un rela4vamente alto grado de inconsistencia. En estos casos, si no ocurren actualizaciones durante mucho 4empo, todas las réplicas gradualmente se volverán inconsistentes: Consistencia Momentánea.
Consistencia Momentánea Problemas de Consistencia que pueden surgir con clientes móviles: Un cliente se conecta a la red y ve un réplica, luego cambia de lugar y ve otra réplica que podría ser más antigua que la anterior. El cliente notaría una inconsistencia. El cliente se mueve hacia otra ubicación, y se conecta (de manera transparente) con otra réplica Las réplicas necesitan mantener una consistencia centrada en el cliente Red de área amplia Computadora portátil Base de datos replicada y distribuida Operaciones de lectura y escritura Figura 7-11. El principio referente a un usuario móvil que accede a diferentes réplicas de una base de datos distribuida.
Lecturas Monotónicas Se dice que un dato ofrece consistencia de lecturas monotónicas si y sólo si se cumple la siguiente condición : Si un proceso lee el valor de un ítem de dato x, cualquier operación de lectura sucesiva sobre x, hecha por el mismo proceso, siempre retornará el mismo valor o un valor más reciente.
Escrituras Monotónicas 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 ítem de dato x es completada antes de cualquier otra operación de escritura sobre x por el mismo proceso.
Lea sus escrituras A veces es más importante garan4zar que si yo escribo un dato, yo siempre vea el valor actualizado no importa de donde haga la siguiente lectura, por lo tanto, un sistema de almacenamiento de datos provee consistencia del 4po lea sus escrituras si se cumple que: El efecto de una operación de escritura, hecha por un proceso sobre un ítem de dato x, será siempre visto por las sucesivas operaciones de lectura sobre x por el mismo proceso.
Escrituras siguen a Lecturas La idea de este esquema de consistencia es garan4zar que si alguien va a modificar el valor de un dato, antes haya leído la úl4ma actualización de éste. Un sistema de almacenamiento de datos provee consistencia del 4po escrituras siguen lecturas si se cumple que: Una operación de escritura de un proceso sobre un ítem de dato x realizada luego de leer ese dato x, se realizó garanazadamente sobre el valor más reciente de x.
Réplicas
Ubicación de réplicas Organización lógica de diferentes clases de copias de datos almacenados en tres anillos concéntricas
Replicas permanentes Es el primer subconjunto de réplicas. Comúnmente son un número pequeño de réplicas. Ejemplos: Múl4ples copias cercanas y los requerimientos son dirigidos a cada una a la vez mediante algún esquema (por ejemplo round- robin). Múl4ples copias lejanas a las cuales se elige entrar.
Replicas iniciadas por el servidor Copias del sistema de almacenamiento de datos para mejorar la performance. Réplicas creadas y actualizadas bajo la inicia4va del dueño del sistema de almacenamiento de datos (servidor) Problema principal: Dónde poner las réplicas? (cerca/ lejos) Cuándo actualizarlas?
Cada servidor cuenta el número de accesos. Cada cliente accede al servidor más cercano. Si C 1 y C 2 comparten el servidor más cercano (P), y éste no 4ene réplica, se toma como si P fuese quien realiza la consulta. una solución
reevaluación de réplicas Si Q determina que el número de pedidos de F es menor a un cierto límite, se borra F de esa réplica. Si P 4ene más de la mitad de los accesos a F, entonces se lleva F de Q a P. Si P no puede recibir F (por ejemplo, no 4ene espacio de disco suficiente), y el número de accesos es mayor que un cierto límite, F se replica a otros servidores: el más lejano que supere un cierto % de accesos a F.