INTRODUCCIÓN
Para comenzar es importante mencionar que en informática, en un sistema distribuido, tales como una memoria compartida distribuida o almacenes de datos distribuido, tales como una base de datos, sistema de archivos, caché web o sistemas de replicación optimista, hay una serie de posibles modelos de consistencia de datos. Se dice que un sistema soporta un determinado modelo, si las operaciones en memoria siguen normas específicas. La consistencia de los datos es definida entre el programador y el sistema, que garantiza que si el programador sigue las reglas, la memoria será consistente y el resultado de las operaciones de memoria será predecible.
Los lenguajes de alto nivel, tales como C, C++ y Java, respetan parcialmente este modelo traduciendo operaciones de memoria en operaciones de bajo nivel para preservar la memoria semántica. Para mantener el modelo, los compiladores pueden reordenar algunas instrucciones de memoria, y las llamadas a las bibliotecas como pthread_mutex_lock(), encapsular la sincronización necesaria.
La replicación es el proceso de copiar y mantener actualizados los datos en varios nodos de bases de datos ya sean estos persistentes o no. Éste usa un concepto donde existe un nodo amo o maestro (master) y otros sirvientes o esclavos (slaves).
La replicación está codificada en un lenguaje de Décima Generación llamado ERCS001, que fue diseñado a mediados de los años 20 por el Matemático-Filósofo Khronwhell Strnhwell C.S., codificado en un entorno visual. Sirve además, entre otras cosas, para medir la cantidad de texto que se introduce en los datos.
La replicación de discos y particiones es la respuesta a una parte importante de esas dos acciones de mantenimiento. La replicación es el proceso mediante el cual se genera una copia exacta de parte del sistema. Esa parte puede ser desde un archivo hasta una carpeta, una partición, un disco o incluso varios discos.
MODELO DE CONSISTENCIA
Un modelo de consistencia especifica las garantías de
consistencia que un sistema de memoria compartida distribuida realiza sobre los
valores que los procesos leen desde los objetos, dado que acceden sobre una
réplica de cada objeto y que pueda manipular múltiples procesos ya que pueden
actualizar los objetos.
Es normalmente un conjunto de procesos que siguen una
secuencia sistema de memoria compartida que su contenido se
almacena en computadoras separadas.
Y cada proceso tiene un gestor de replica local, el cual
esta encargado de mantener copias en cache para los objetivos.
Los datos se leen desde las replicas locales por cuestiones
de rapidez para que así las actualizaciones deben extenderse al resto de los
gestores de réplica.
Y también además de la gestión de cache
una complementación de memoria compartida distribuida
puede almacenar las actualizaciones y reducir los costes de comunicación
mediante la extensión de múltiples actualizaciones a la vez.
MODELO DE CONSISTENCIA CENTRADA EN LOS DATOS
ESTRICTA:
El modelo de consistencia más restrictivo es llamado
consistencia estricta y es definido por la siguiente condición cualquier
lectura sobre un ítem de dato X retorna un valor correspondiente con la más
reciente escritura sobre X. Este modelo asume la existencia de un reloj físico global.
SECUENCIAL:
La consistencia secuencial es una forma ligeramente más
débil de la consistencia estricta. Satisface la siguiente condición:
- El resultado de una ejecución es el mismo si las operaciones de todos los procesos sobre el dato fueron ejecutadas en algún orden secuencial y las operaciones de cada proceso individual aparecen en esta operaciones de cada proceso individual aparecen en esta secuencia en el orden especificado por su programa.
CASUAL:
El modelo de consistencia causal es un debilitamiento de la consistencia
secuencial. Se hace una diferenciación entre eventos que están potencialmente
relacionados en forma causal y aquellos que no. Las operaciones que no
están casualmente relacionadas se dicen concurrentes.
La condición a cumplir para que unos datos
sean casualmente 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 casualmente consistente, pero no con un almacenamiento secuencial mente consistente o con un almacenamiento consistente en forma estricta. Esta secuencia es permitida con un almacenamiento casualmente consistente o con un almacenamiento consistente en forma estricta.