Modelos de Consistencia

Modelos de Consistencia

Los modelos de constancia son un contrato entre procesos y el almacenamiento de datos, los procesos acuerdan obedecer ciertas reglas, el almacenamiento promete trabajar correctamente y que no se repitan los datos. Un proceso que realiza una operación de lectura espera que esa operación devuelva un valor que refleje el resultado de la última operación de escritura sobre el dato.

En informática los modelos de consistencia se utilizan en sistemas distribuidos como sistemas de memoria compartida distribuida o almacenes de datos distribuidos (como sistemas de archivos, bases de datos, sistemas de replicación optimistas o almacenamiento en caché web).

Modelos de Consistencias: 

  • Consistencia estricta o consistencia atómica
  • Consistencia secuencial
  • Consistencia de causalidad
  • Consistencia liberada
  • Consistencia eventual
  • Consistencia delta
  • Consistencia PRAM (también conocido como consistencia FIFO)
  • Consistencia débil
  • Consistencia vector campo

La replicación es un mecanismo importante para incrementar el rendimiento de las lecturas del servidor de archivos y la disponibilidad de los datos, consiste en tener varias copias de los datos y otros recursos del sistema, al estar duplicados se puede dar acceso a ellos incluso si uno de ellos fallara, reduciendo así las posibilidades de error.  

En general lograr escalabilidad va en contra de un gran rendimiento y por ello existen algunos problemas entre ellos:

  1. La actualización de las réplicas consume más ancho de banda de la red.
  2. Mantener múltiples copias consistentes resulta a su vez un serio problema de escalabilidad y mas en un contexto de consistencia estricta.
  3. La idea es que la actualización se realice con una única operación atómica. 
  4. Se necesitan sincronizar todas las réplicas.

Los modelos de consistencia se presentan divididos en dos conjuntos:

  • Modelos de consistencia centrados en los datos.
  • Modelos de consistencia centrados en el cliente.

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.

CONSISTENCIA ESTRICTA

Esta consistencia está definida por la siguiente condición: Cualquier lectura a una localidad de memoria x regresa el valor guardado en la operación de escritura más reciente en x. Para que la determinación del evento “sea más reciente” no sea más ambigua. En esta consistencia nunca se puede presentar dos eventos al mismo tiempo. De igual manera no es posible lograr en multiprocesador, debido a que pueden existir escrituras y lecturas en memoria separada por espacios mínimos de tiempo que no alcanzan a cumplir la condición exigida.

CONSISTENCIA SECUENCIAL

Es una forma más débil de la consistencia estricta. Satisface la siguiente condición: El resultado de una ejecución es el mismo sin las operaciones (lectura y escritura) de todos los procesos sobre el dato fueron ejecutadas en algún orden secuencial.

  • Un dato almacenado secuencialmente consistentemente.
  • Un dato almacenado que no es secuencialmente consistente.

El resultado de cualquier ejecución es el mismo que si las operaciones de todos los procesos 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.

CONSISTENCIA CAUSAL

La condición a cumplir para que unos datos sean causalmente consistentes es: Escrituras que están potencialmente relacionadas en forma causal deben ser vistas por todos los procesos en el mismo orden. Escrituras concurrentes pueden ser vistas en un orden diferente sobre diferentes máquinas. Es permitida con un almacenamiento causalmente consistente, pero no con un almacenamiento secuencialmente consistente o con un almacenamiento consistente en forma estricta.

La condición a cumplir para que unos datos sean causalmente consistentes es: Escrituras que están potencialmente relacionadas en forma causal deben ser vistas por todos los procesos en el mismo orden. Escrituras concurrentes pueden ser vistas en un orden diferente sobre diferentes máquinas. Esta secuencia es permitida con un almacenamiento causalmente consistente, pero no con un almacenamiento secuencialmente consistente o con un almacenamiento consistente en forma estricta.

Modelos de Consistencia Centrados en el Cliente:

Este tipo de modelos trata una clase especial de almacenamiento de datos distribuidos. Los almacenamientos de datos referidos están caracterizados por una falta de actualizaciones simultáneas, o cuando dichas actualizaciones ocurren, pueden ser fácilmente resueltas.

La mayoría de las operaciones son de lectura. La introducción de modelos de consistencia centrados en el cliente permite esconder muchas inconsistencias de manera relativamente fácil. 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. No se dan garantías para accesos concurrentes por diferentes clientes.

Consistencia Eventual










Comentarios

Entradas populares