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:
- La actualización de las réplicas consume más ancho de banda de la red.
- Mantener múltiples copias consistentes resulta a su vez un serio problema de escalabilidad y mas en un contexto de consistencia estricta.
- La idea es que la actualización se realice con una única operación atómica.
- 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:
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
Publicar un comentario