PARTICIONES Y REPLICAS Un sistema maneja Replicas de Datos si una relacion dada(o, en terminos mas generales, un fragmento dado de una realcion) se puede representar en el nivel fisico mediante varias copias almacenadas ó replicas, en muchos sitios distintos. EMP NUM EMP E1 E2 E3 E4 E5 NUM DEPTO DX DY DZ DY DZ SALARIO 45K 40K 50K 63K 40K NUM DEPTO DX DZ DZ SALARIO 45K 50K 40K NUM DEPTO DY DY SALARIO 40K 63K Fragmento de NewYork NUM EMP E1 E3 E5 Fragmento de Londres NUM EMP E2 E4 Replica del Fragmento de Londres NUM EMP E2 E4 NUM DEPTO DY DY SALARIO 40K 63K Almacenamiento Fisico en New York Replica del Fragmento de New York NUM EMP E1 E3 E5 NUM DEPTO Dx Dz Dz SALARIO 45k 50k 40k Almacenamiento Fisico en Londres Ventajas de las replicas: 1 • Puede producir un mejor desempeño ya que las aplicaciones pueden operar sobre copias locales en vez de tener que comunicarse con sitios remotos. 2− Puede significar una mejor disponibilidad ya que de todo objeto estara disponible por lo menos una copia, al menos para proposito de recuperacion. Desventajas: La principal desventaja de la replica es que al momento de copiar un nuevo objeto, debe de ponerse al dia todas las replicas de ese objeto. La replica al igual que la fragmentacion, debe de ser transparente para el usuario en otras palabras debe manejar una independencia de replica(conocida como transparencia de replica), de tal forma que este se desempeñe como si solo existiera una copia de datos. Las replicas son de gran ayuda al usuario ya que permiten que los programas simplificar sus actividades en las terminales de trabajo. Cuando se fragmentan los datos que se encuentran en un solo servidor, permite partir la base de datos existente en multiple servidores. Con esta capacidad se puede optimizar el uso de la red, procesando y almacenando los datos en diferentes servidores. TRANSACCIONES DISTRIBUIDAS En un sistema de BDC, el manejador de transacciones asegura al usuario los programas o transacciones que se esta ejecutando con ACID propiedades(automatice, consistencia, aislamiento, durabilidad). Esto es típicamente archivado por el usuario, (1) Mediante un mecanismo de ocurrencia de control tal como el de Two phase (dos fases) cierra o asegura la transacion de ocurrencias sin hacer interferencia con los otros. (2) Un mecanismo de codigos que asegura que la transacción puede ser completada una a una o abortada completamente despues de un fracaso. Con una base de datos distribuida, podemos tener operaciones de transacciones o datos recidentes en diferentes computadores. La porcion de una transaccion hecha en un computador o sitio es llamado SUBTRANSACCIÓN. Cada sitio puede asegurarse usando codigos convencionales, lasubtransaciones se ejecutan automaticamente y no es necesario un coordinador de desiciones para cada sitio. En terminos de control de concurrencia, muchas estrategias corrientes de trabajo en ambientes distribuido, en particular, two phase cierran las transacciones necesitando pedir candados (compartidos o exclusivos) para todos los objetos de acceso. El candado para el objeto X es manejado por el sitio cuando X es almacenado asi y el cual puede ser requerido cuando X es accesado. La replica de datos representan una complicacion en la estrategía descrita en los parametros previos. Especificamente considere un objeto X cuando tiene tres copias X1, X2, X3 cada una en diferente sitio. Si la transacción X se desea actualizar el protocolo de nivel requiere el candado exclusivo requerido en todos los tres sitios. Esto tiene dos desventajas, (1) tres candados tienen que ser requeridos por un solo objeto, (2) si la copia X1 no esta disponible entonces la transacciones no puede se procesada. Para reducir la redundancia de candados y problemas de disponibilidad de datos, un numero de datos replicados administra los algoritmos que tienen que estar disponibles. Estos varian a medida que se ejecuta el control de concurrencia y cuando ellos autorizan transacciones, poe ejemplo en algunos casos los candados son unicamente ejecutados en na copia primaria; en otros los candados son hechos en todos los sitios 2 disponibles. En conclusión, un sistema no puede tener una consulta optimizada o un mecanismo para manejar datos distribuidos, los usuarios deben asumir los problemas como propios, tal como el de hacer la optimización de otra consulta o manejar la copia de estas ya que podria generarse una inconsistencia de datos. PROCESO DE CONSULTAS DISTRIBUIDAS Este proceso se realiza mediante la combinación de la base de datos local con la distribuida mediante un cliente instalado en el servidor de integración. La optimizacion de consultas distribuidas son utilizadas en algunos servidores de integración comercial. Por ejemplo, en ingres Star, los parametros de estos pueden tomar informes defragmentados, la consulta global incluyendo la distribución estadistica de datos provocan el aumento del transporte de datos, la velocidad de enlace de comunicación y la creación de indices priarios y secundarios y algunos parametros estructurales de almacenamiento. REPLICACION DE DATOS DISTRIBUIDOS El soporte para la replicacion de datos es primitiva. La mayoria se asemeja a un soporte de base de datos de la forma snapshot ( fotografia de BD) estos producen y renuevan las copias de solo lecura deun datoen un intervalo de tiempo especificado. Una base de datos snapshot es una vista materializada. Por ejemplo un snapshot puede ser creada con los siguientes comandos (exact syntax may vary): Create materialized_view v1 as select * from work where assigned_to=ME refresh incremental cycle 1 hour; Create materialized_view v2 as select * from work, work_data where work.id = work_data.id and work_data.amount > 500 refresh complete cycle 1 day; En el anterior ejemplo, v1 es un snapshot que involucra solamente una relación. Este sanpshot es refrescado cadahora con actualizaciones incrementales (especificada con la clausula refresh incremental cycle 1 hour) este es el tiempo de refresco, solo la actualización incremental para la relacion work es enviada despues de ser refrescada la sitio de replicación. Snapshot v2 involucra dos relaciones. La especificación reflesh complete es el tiempo promedio para enviar una nueva copia de v2 alsitiode replicación. BASES DE DATOS DISTRIBUIDAS EN REDES NOVELL Un ejemplo de BDD y de gran apicación en la actualidad es la utilizada por las redes Netware y la cual se presenta a continuación, tanto de como funciona como de sus diferentes clases. Existen dos formas de particionar y replicar la base de datos. • Fault Tolerance: La replicación provee tolerancia a fallas por ser el almacenamiento redundante en varios 3 servidores. Si un disco del servidor donde se contiene los datos se daña, la replica existente en otro servidor, podiria autenticar al usuario y proveer información del dato como si estuviera en la original. Como la iformación distribuida en los servidores es igual, los clientes no dependen de un solo servidor para accesar la información • Acceso Eficiente a la Información: Partición y replicación provee respuesta al tiempo y reduce el trafico en la red. también decrementa el tamaño de las bases de datos y coloca la información cerca de los usuarios que más la necesitan. El objetivo de esta replica es colocar cerca al usuario la información físicamente en servidor más inmediato, esto se logra analizando cuales son lo usuarios que accesan más la información. Esto garantiza el rendimiento en todos los procesos concernientes con la base de datos. En el sistema operativo Novell podemos encontrar el manejo que se le hace a la replicación. Novell maneja la replicación para almacenar y controlar los cambios que se generan en el arbol (objetos que contiene una red: Usuarios, grupos, servidores, estaciones, etc) así cuando se genera algun cambio supongamos en un usuario este almacena los datos no en un servidor si no en varios donde se encuentran las replicas referentes a ese usuario. Aquí denotamos los elementos más representativos que se podrían acomodar en un ambiente distribuido. Cuando se realiza la replicación las particiones se dividen y cada una de ellas tiene un nombre. La divisiones contienen los datos reales para los objetos. En este sistema operativo se manejan 4 tipos de replicas • Master: Se crea cuando se define la partición. Es la replica principal donde se almacenan todos los datos concerniente a la red. En esta replica se modifican los datos y es donde estan constantemente actualizados. • Read/write: Se crea en el segundo y tercer servidor que se crea y los servidores subsecuentes que se quiere. En esta replica se pueden modificar y consultar datos, pero constantemente le pasa esas modificaciones a la replica maestra. • Read−Only: Se crea en el servidor que se especifique. Esta replica solo es para consulta y no se puede realizar ninguna modificación. • Subordinate Reference. Creada cuando el sevidor contiene un replica de la partición pero no una reproducción del hijo de esa replica. Caracteristicas Master Read/write Read−Only Mantiene la lista de todas las otras replicas Contiene una completa copia de toda la información del los objetos en la partición Controla objetos cambados (Crear, mover, borrar y modificar) Soporta Ver los objetos Puede tener multiples replicas por partición Puede ser cambiada desde la replica maestra X X X X X X X X X X X X X X X Subortinate Reference X X 4 Puede ser cambiada desde la replica read−write X Puede ser creada por el administrador X X X No puede ser creado por el administrador, es creada automaticamente por e sistema COMO LAS REPLICAS SON ACTUALIZADAS Y SINCRONIZADAS? X Cuando una partición es creada, la partición root recive una lista de replicas. Cuando los cambios son creados para los objetos existentes en una partición, estos cambios son enviados a todas las otras replicas de la partición usando la lista de replicas que se encuentra en el root. Solamente los cambios son enviados a las otras replicas. Por ejemplo si a un usuario se le cambia en número de telefono, no se enviara todos los datos del usuario a todas las replicas solamente los datos que se hayan modificado. La replica maste participa en el proceso de partición y sincronización intercambiando datos con las demas replicas, pero esta no controla en su totalidad todo el proceso. Similarmente, cada replica read/write se sincroniza con otras replicas de la partición. La replica Read−Only también se sincroniza con otras replicas, pero solamente recive actualización de otros servidores. Los cambios que se realizan en los datos tienen su priorización al momento de actualizarlos, por eso existira algunos cambios representativos que seran actualizados inmediatamente mientras otros podrán dar espera y serán actualizados paulatinamente. Para que la sincronización ocurra, cada replica debe estar conectada. LISTA DE REPLICAS Una lista de replicas (tambien llamada replica ring) es una lista de todas las replicas de una partición. Esta lista incluye los servidores que contienen la replica, el tipo de replica y el estado actual. Todas las replicas incluidas la subordinada contiene una copia de la lista de replica. 5