sábado, 23 de septiembre de 2017

CONSISTENCIA Y REPLICACIÓN


INTRODUCCIÓN

Resultado de imagen para imagenes consistencia y replicacion

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.



MODELOS DE CONSISTENCIA CENTRADA AL CLIENTE


  • Este tipo de modelos trata una clase especial de almacenamiento de datos distribuidos.
  • Los almacenamiento de datos referidos están caracterizado 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 permiten 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.

ADMINISTRACIÓN DE REPLICAS


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)

Resultado de imagen para imagenes consistencia y replicacionUbicación del servidor de réplicas

  • 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 mínimo

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).

PROTOCOLOS DE CONSISTENCIA


Consistencia
Descipción
Estricta:
Ordenamiento en tiempo absoluto de todos los accesos compartidos.
Linealizada
Todos los procesos deben ver todos todos los accesos compartidos en el mismo orden. Los accesos son ordenados de acuerdo a una marca de tiempo global.
Secuencial
Todos los procesos ven todos los accesos compartidos en el mismo orden.  Los accesos no están ordenados en el tiempo.
Causal
Todos los procesos ven los accesos compartidos causalmente relacionados en el mismo orden.
FIFO
Todos los procesos ven las escrituras de un proceso en el orden que éste las efectuó.  Escrituras de diferentes procesos pueden no ser vistas en el mismo orden.
(a) Modelos de consistencia que no usan variables de sincronización
Consistencia 
Descripción
Débil
Los datos compartidos pueden ser considerados consistentes luego de que se haya hecho la sincronización.
relajada
Los datos compartidos son hechos consistentes cuando la región crítica es abandonada.
Entry
Los datos compartidos pertenecientes a una región crítica son hechos consistentes cuando se entra a la región crítica.
(b) Modelos de consistencia con operaciones de sincronización

No hay comentarios:

Publicar un comentario

CONSISTENCIA Y REPLICACIÓN

INTRODUCCIÓN Para comenzar es importante mencionar que en informática, en un sistema distribuido, tales como una memoria comparti...