Sunteți pe pagina 1din 10

Introduccion

La gran cantidad de avances e innovaciones tecnolgicas que se produjeron en los ltimos aos tuvieron como resultado un cambio en la forma de observar a los sistemas de informacin, en general a las aplicaciones computacionales. Existen avances tecnolgicos que se realizan de forma constante con la en dispositivos de los de almacenamiento, y programas circuitos, para la programas y metodologas. Dichos avances van de la mano junto demanda usuarios explotacin de dichos dispositivos mejorados. Un rea en la cual las soluciones estn ocupando

tecnologa con nuevas arquitecturas, es en la de los sistemas distribuidos de informacin. Estos sistemas se refieren al manejo de datos almacenados en muchos sitios ligados a travs de una red de comunicaciones. Un caso particular de estos sistemas distribuidos es lo que se conoce como base de datos distribuidas. En persigue diversos, los la no sistemas de base de de datos de distribuidas base de a para dar se los

integracin

sistemas homogneos

datos

necesariamente

usuarios una visin global de la informacin disponible. Este proceso de integracin no implica la centralizacin de la informacin, mas bien, con la ayuda de la tecnologa de redes de computadoras la informacin se mantiene distribuida y los sistemas de bases de datos distribuidos permiten el acceso a ella como si estuviera localizada en un solo lugar. La distribucin de la informacin permite tener accesos rpidos a la misma, tener copias de la informacin para

accesos ms rpidos y para tener respaldo en caso de fallas. Un sistema de base de datos distribuida es el resultado de la integracin de una base de datos distribuida con un sistema para su manejo. Existen diversos factores relacionados a la construccin de base de datos distribuidas que no se presentan en base de datos centralizadas los ms importantes son: Diseo de base de datos distribuida: Se debe considerar la forma de distribuir la informacin entre diferentes sitios, primero, como fragmentar la informacin, segundo, como asignar cada fragmento entre los diversos sitios de la red.Se debe considerar tambin si la informacin esta replicada es decir, si existen copias mltiples del mismo dato y, en ese caso, como mantener la consistencia de la informacin. Procesamiento de consultas: En base de El datos distribuidas es el procesamiento transacciones de de

consultas

adquiere

mayor relevancia que en base de datos objetivo convertir

centralizadas.

usuario en instrucciones para manipulacin de datos. Control de concurrencia: Es la actividad de coordinar accesos concurrentes a la base de datos, permite a los usuarios acceder a la base de datos de una forma multiprogramada mientras se mantiene la imagen de que cada usuario esta utilizndola solo en sistema dedicado. Asegura que transacciones mltiples sometidas por usuarios diferentes no interfieran unas con otras de forma que se produzcan resultados incorrectos. El control de

concurrencia en base de datos distribuidas es ms compleja que en sistemas centralizados. Un aspecto interesante del control de concurrencia es el manejo de nterbloqueos, el sistema no debe permitir que dos o ms transacciones se bloqueen entre ellas. Confiabilidad: En cualquier sistema de base de datos, centralizado o distribuido, se debe ofrecer garantas de que la informacion es confiable. se un As y cada un ya consulta mediante fin. que En una o actualizacin las de la el informacion tienen aun realiza transacciones, sistemas sola cuales

inicio

distribuidos, transaccin

manejo de atomicidad y durabilidad de las transacciones es ms complejo, puede involucrar dos o ms sitios de la red.

CONTROL DE CONCURRENCIA MULTIVERSION MVCC (Multi version concurrency control) es una tcnica de concurrencia optimista en donde ninguna tarea o hilo es bloqueado mientras se realiza una operacin en la tabla, porque el otro hilo usa su propia copia (versin) del objeto dentro de una transaccin. Obviamente la implementacin interna de este algoritmo es distinta en cada motor de bases de datos, a grandes rasgos se podra decir que el MVCC internamente lo que hace es identificar cada transaccin con un numero univoco y a cada registro de la tabla, con un numero de versin, donde cada transaccin trabaja con su copia y si se modifica un registro de una tabla, el contador de versin del registro se incrementa. Si 2 transacciones modificaron la misma tabla, se hace un mergue de ambas tablas combinando las ltimas versiones de cada se registro. el a Si commit, la las el 2 transacciones, que modificaron queda, una exactamente el mismo registro, entonces en ese caso, cuando realice registro finalmente en corresponde ultima transaccin realizar

modificacin sobre ese registro. De esta manera se logra que una lectura no bloquee una transaccin de escritura y que una transaccin de escritura tampoco bloquee una transaccin de lectura. Un ejemplo seria, cuando hago un SELECT, puedo

simultneamente hacer un UPDATE y cuando hago un UPDATE puedo

hacer simultneamente un SELECT, algo que en el isolation habitual de las bases de datos, no es posible. Es muy habitual usar este tipo modelo de concurrencia para evitar los famosos deadlocks que suelen ocurrir en bases de datos con mucha demanda. Sin embargo, MVCC no debe ser usado en cualquier ocasin, ya que tiene un overhead muy importante. Todo el manejo de versionado tiene un alto costo, ya que las versiones de registros se copian y almacenan en tablas o estructuras fsicas temporales que luego se descartan. A medida que las operaciones de escritura sobre la base de datos cobran relevancia sobre las operaciones de lectura, y por otro lado, nuestras lecturas son largas, los beneficios de usar MVCC aumentan, ya que reducimos los bloqueos. Es fundamental la existencia de un alto grado de

paralelismo en nuestra aplicacin. MVCC es por definicin, un modelo muy escalable y donde mejor se en sus ventajas, es en escenarios de alta demanda. La principal diferencia entre multiversin y el modelo de bloqueo es que en los bloqueos MVCC derivados de una consulta (lectura) de datos no entran en conflicto con los bloqueos derivados de la escritura de datos y de este modo la lectura nunca bloquea la escritura y la escritura nunca bloquea la lectura.

En general la idea bsica es que cuando una transaccin modifica un dato, se crea una nueva versin del mismo, pero se guarda la anterior. De este modo, al acabar la ejecucin de las transacciones, se puede utilizar para cada una de ellas la versin es estas de los que datos hace la que hace ms la ejecucin de correcta, decir, ejecucin serializable. espacio

Lgicamente,

tcnicas

requieren

almacenamiento para guardar las diferentes versiones. Algoritmo Multiversin Este algoritmo consiste en ir guardando varias versiones del mismo dato (grnulo) : se conservan los valores antiguos de los grnulos que se han actualizado. Lectura: Cuando una Transaccin necesita leer algn grnulo, se elige una versin adecuada para mantener la seriabilidad de la planificacin, si es posible. Escritura: Cuando una Transaccin escribe un grnulo, escribe una nueva versin de ese grnulo, conservndose adems la versin anterior. Desventaja: 1. Requiere ms almacenamiento que los anteriores. 2. Muchas veces recuperacin. estas versiones se aprovechan para la

Abortar transacciones: Se aborta la transaccin que provoc el conflicto (la ms reciente) y se le asigna una nueva marca de tiempo. Este algoritmo se basa en el concepto de la seriabilidad por vistas. Algoritmo multiversin: codificacin void lee(transaccion t,granulo g,valor &v) { marca k; //encuentra la version ms alta <= marca_transac(t) k=ultima_version(g); while(marca_g_esc(g,k) > marca_transac(t)) { k=version_previa(g,k) ) } v=lleva_a_cabo_lectura(g,k); marca_g_lee(g,k) = max(marca_g_lee(g,k),marca_transac(t)); } Algoritmo multiversin: codificacin void escribe(transaccion t,granulo g,valor v) { marca k; k=ultima_version(g); while(marca_g_esc(g,k)>marca_transac(t)) k=version_previa(g,k); if ( marca_g_lee(g,k) <= marca_transac(t) ) {

lleva_a_cabo_escritura(g,v); inserta_valor(k,v); inserta_marca_esc(k);

} else aborta_transaccion(); }

CONCLUSIN Despues de haber estudiado el manejo de transacciones y concurrencia se puede caracterizar lo siguiente. 1. La ejecucin concurrente de de procesos, puede producir a la

mejoras

significativas

rendimiento

respecto

ejecucin secuencial de programas. 2. Permite a los usuarios acceder a la base de datos de una forma multiprogramada mientras se mantiene la imagen de que cada usuario esta utilizndola solo en sistema dedicado. 3. Asegura que transacciones mltiples sometidas por

usuarios diferentes no interfieran unas con otras de forma que se produzcan resultados incorrectos. 4. El control de concurrencia en base de datos distribuidas es ms compleja que en sistemas centralizados. Un aspecto interesante del control de concurrencia es el manejo de nterbloqueos, el sistema no debe permitir que dos o ms transacciones se bloqueen entre ellas.

Bibliografa 1. Universitat de Valncia 2006/07 BD2-Tema 4: Control de concurrencia (Esther de Ves, Vicente Cervern). 2. http://grimpidev.wordpress.com/2011/02/08/control-deconcurrencia-multiversion-mvcc/ 3. http://wizardsofbd.blogspot.com/2011/06/control-deconcurrencia-multiversion.html

S-ar putea să vă placă și