miércoles, 23 de mayo de 2012

[DISTRIBUIDOS Y PARALELOS] Replicación y consistencia

Esta es una entrada que se me olvidó publicarpero aquí está para complementar los temas de lo que trató la segunda parte del curso.
___________________________________________________________________________________


La replicación es el proceso de copiar y de mantener los objetos de la base de datos en las múltiples bases de datos que incorporan un sistema de base de datos distribuida. Las bases de datos distribuidas y la replicación de la base de datos son términos cercanos pero diferentes. En una base de datos distribuida pura, el sistema maneja una sola copia de toda la información y soporta los objetos de la base de datos.

Mientras que la replicación confía en tecnología de la base de datos distribuida para funcionar, la replicación de la base de datos puede ofrecer las ventajas de las aplicaciones que no son posibles dentro de un ambiente de base de datos distribuida puro. La replicación es útil para mejorar el funcionamiento y para proteger la disponibilidad de aplicaciones porque existen las opciones alternas del acceso de los datos.

Las aplicaciones transaccionales distribuidas de la base de datos, típicamente usa transacciones distribuidas para tener acceso a datos locales y remotos y modificar la base de datos global en tiempo real.

La replicación copia y mantiene los objetos de las bases de datos en las múltiples bases de datos que levantan un sistema distribuido.

Puede mejorar el funcionamiento y proteger la disponibilidad de las aplicaciones, porque alterna opciones de acceso de los datos existente.

Replicación básica

Con la replicación básica, la replicación de los datos proporciona el acceso a sólo-lectura a los datos de las tablas que provienen de un sitio primario. Sin embargo, las aplicaciones a través del sistema deben tener acceso a los datos en el sitio primario cuando las actualizaciones sean necesarias.

Replicación (Simétrica) Avanzada

Permite que las aplicaciones hagan actualizaciones a las réplicas de las tablas, a través de un sistema replicado de la base de datos. Con la replicación avanzada, los datos pueden proveer lectura y acceso a actualizaciones a los datos de las tablas.

Conceptos fundamentales

1. Aplicaciones de la replicación básica

La replicación básica es útil para la distribución de la información, tambien sirve como manera de replicar bases de datos enteras o información off-load. Por ejemplo, cuando el funcionamiento de grandes cantidades transacciones es crítico, puede ser ventajoso mantener una base de datos duplicada para aislar las preguntas exigentes de las aplicaciones de ayuda de decisión.

2.- Sólo lectura de las tablas de Snapshots

Sólo-lectura de las tablas de snapshots, es una copia local de los datos de la tabla que originan de unas o más tablas principales remotas. Una aplicación puede preguntar los datos en un snapshots de la tabla, pero no puede insertar, actualizar, o eliminar filas en los snapshots.

3.- Refresco de Snapshots

Los datos que un snapshots presenta, no necesariamente coinciden con los datos actuales de sus tablas principales. Una tabla de snapshots es un reflejo de transacciones consistentes de sus datos principales, como esos datos existieron en un punto específico en el tiempo. Para mantener los datos del Snapshots relativamente actuales con los datos de su master, el servidor debe restaurar periódicamente el Snapshot.

Objetos de la Replicación

Un objeto de replicación es un objeto de la base de datos que existe en los servidores múltiples en un sistema de la base de datos distribuida. Las facilidades avanzadas de la replicación, le permite replicar las tablas y los objetos de soporte tales como vistas, triggers de la base de datos, paquetes, índices, y sinónimos.

Grupos de Replicación

En un ambiente avanzado, se manejan objetos de replicación usando grupos de replicación. Organizando objetos relacionados de la base de datos dentro de un grupo de replicación, es más fácil administrar muchos objetos juntos. Típicamente, se crea y utiliza un grupo de replicación para organizar el esquema de objetos necesarios para apoyar una aplicación particular de la base de datos. La restricción básica es que un objeto de la replicación puede ser un miembro de solamente un grupo.

Sitios de Replicación

Un grupo de la replicación puede existir en múltiples sitios de replicación. Los ambientes avanzados de replicación soportan dos tipos básicos de sitios: Sitios maestros y sitios de snapshot.
Catálogo de Replicación

Cada sitio maestro y de snapshot en un ambiente avanzado de replicación tiene un catálogo de replicación. El catálogo de replicación de un sitio es un sistema distinto de diccionario de tablas y vistas que mantienen información administrativa sobre objetos de la replicación y grupos de replicación en el sitio. Cada servidor que participa en un ambiente avanzado de replicación, puede automatizar la replicación de objetos en grupos usando la información en su catálogo de la replicación.

Consistencia

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.


Una base de datos distribuida está en un estado consistente si obedece todas las restricciones de integridad (significa que cuando un registro en una tabla haga referencia a un registro en otra tabla, el registro correspondientes debe existir) definidas sobre ella.

Los cambios de estado ocurren debido a actualizaciones, inserciones y supresiones de información. Por supuesto, se quiere asegurar que la base de datos nunca entre en un estado de inconsistencia.

Sin embargo, durante la ejecución de una transacción, la base de datos puede estar temporalmente en un estado inconsistente.

El punto importante aquí es asegurar que la base de datos regresa a un estado consistente al fin de la ejecución de una transacción.


El control de consistencia es la parte más difícil de la replicación, para ello existen muchas herramientas actuales que poseen mecanismos sofisticados para realizar dicha tarea. Desde este punto de vista, se debe evaluar la posibilidad de utilizar algunos de estos software propietarios, o realizar un software propio para el correcto control de las réplicas.




1 comentario: