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