Está en la página 1de 7

2PL Algorithms.

El algoritmo de bloqueo libera los bloqueos que se realizan por una transaccin tan pronto como el comando de base de datos asociada se ejecuta, y que la unidad de bloqueo ya no tiene que tener acceso. Sin embargo, el propio trasaction est bloqueando otros objetos, despus de que se libera el bloqueo de x. Incluso a travs de este puede parecer ventajoso desde el punto de vista de la concurrencia aumentado, que permite operaciones de interfaz con un otro, lo que resulta en la prdida de aislamiento total y atomicidad. La regla de la segunda fase de cierre se limita a establecer que las transacciones no debera solicitar un bloqueo tras dar a conocer uno de sus bloqueos. No debera solicitar un bloqueo tras dar a conocer uno de sus bloqueos. Cada transaccin tiene una fase de crecimiento, donde obtiene bloqueos y elementos de acceso a datos, y una fase de contraccin, durante el cual se libera bloqueos. 2PL Centralizado. Los algoritmos 2PL son fciles de extender a ambientes distribuidos. Una forma de hacerlo es delegar la gestin de bloqueos a un solo sitio central, luego cada sitio se comunicar con este gestor en vez de hacerlo con su propio gestor de bloqueo. La comunicacin que se establece al ejecutarse una transaccin se realiza entre: el gestor de transacciones del sitio que inicia la transaccin, el gestor de bloqueos y el procesador de datos del otro sitio involucrado.

Procesador de Central LM Datos.

Coordinador TM

Sitio

1: Pedido de Bloqueo

2: Bloqueo concedido

3: Operacin

5: Soltar el Bloqueo 4: Fin de la Operacin

El algoritmo centralizado TM a diferencia del algoritmo TM es que el primero realiza un control sobre las rplicas si es que estas existen. Otra diferencia entre algoritmos es que el C2PL-LM no enva las operaciones al respectivo procesador de datos, esto se realiza a travs del gestor de transacciones , no como el 2PL estricto que es el gestor de bloqueos central quien enva las operaciones a cada procesador de datos. Algoritmo C2PL-TM Transacciones Al realizar la lectura verifica que se devuelva el valor de x ms barato (control de rplicas). Al realizar la escritura verifica que x se almacene en todas las rplicas. Cada transaccin es enviada al gestor central de bloqueo. Scmsg : (mensaje de solicitud o liberacin de bloqueo). Si el bloqueo es concedido entonces, enva un mensaje al procesador de datos sino se debe informar el fin de la transaccin.

Dpmsg: (mensaje del procesador de datos). Como la transaccin fue completada segn el tipo de operacin este proceder. Lectura -> le devolver el valor (res). Escritura->le dir al usuario que el cambio a sido efectivo. Si el Coomit es recibido por todos los participantes se avisara a la aplicacin el fin de la transaccin. Se enva un pm al gestor central de bloqueo. Sino solo se registra la llegada del comit. Si la operacin se aborta, de be avisar a la aplicacin y enviar el correspondiente pm al gestor central de bloqueos. Algoritmo C2PL-LM Llega un mensaje solo si es coordinado por TM ? En caso de escritura o lectura, verifica que las operaciones que corresponden al dato, sino estn bloqueadas las bloquea informndole luego al coordinador TM de T y sino las pone en cola para la unidad de bloqueo. En caso de Commit o Abort, para cada unidad de bloqueo las desbloquea y las operaciones que estaban esperando en la cola se instancian en SOP. Este algoritmo lo que realiza es una gestin de bloqueo, evitando el interbloqueo. Una crtica comn a este algoritmo es la posibilidad de que se produzca un cuello de botella al estar centralizado el administrador, o que al estar cado se produzcan fallas por no encontrar la ubicacin del mismo.

Primary Copy 2PL Es una extensin directa de 2PL centralizado , solo que trata de subsanar las desventajas de esta. Lo pone en prctica de la siguiente manera: varios administradores de bloqueo en varios sitios, donde cada uno administra y es responsable de un grupo de unidades de bloqueo, por lo tanto el algoritmo trata una copia de cada elemento de datos como su copia principal. El nico cambio es que l ubicaciones de copia de primaria tiene que ser determinado para cada elemento de datos antes de enviar un bloqueo o solicitud de desbloqueo para el administrador de bloqueos en el sitio. A pesar de que exige un directorio ms sofisticado en cada sitio, sino que tambin reduce la carga de la sede central sin causar una gran cantidad de comunicacin entre los gerentes y administradores de transacion de bloqueo. Distributed 2PL Espera la disponibilidad de los administradores de bloqueo de cada sitio. Si la base de datos no es replicada entonces se degenera al algoritmo Primary Copy 2PL. Si los datos estn replicados implementa un protocolo de control ROWA.

Cada despachador maneja las solicitudes de bloqueos para los datos de ese nodo, una transaccin puede leer cualquiera de las copias replicada del elemento x, obteniendo un bloqueo de lectura en cualquiera de las copias replicadas del elemento x, obteniendo un bloqueo de lectura en cualquiera de las copias de x. La escritura sobre x requiere que se obtenga el bloqueo de todas las copias de x. La comunicacin entre los nodos que cooperan para ejecutar una transaccin de acuerdo al protocolo de candados distribuidos de dos fases se presenta en la figura. Los mensajes de solicitud de bloqueos se envan a todos los administradores de datos por los administradores de bloqueo . Los procesadores de datos envan su mensaje de fin de operacin al administrador de transacciones coordinador.

En 2PL distribuido , cada transaccin puede consistir de varias subtransacciones corriendo en sitios diferentes. Aqu se considera lo siguiente que una planificacin es seriablizable si es equivalente en su efecto sobre la bas de daos a una planificacin serial. Ademas de ellos el bloqueo de dos fases exige que los bloqueos se dividan en dos fases: fase de bloqueo y fase de desbloqueo. Este algoritmo es similar a de C2PL-TM con importantes modificaciones, solo que los mensajes enviados al sitio central de manejo de bloqueo ahora se envan a cada administrador de bloqueo de los sitios participantes. Otra diferencia es que las operaciones no son pasadas al procesador de datos por el coordinador de transacciones sino que es enviada por los administradores de bloqueo participantes. Esto significa que el coordinador de transacciones no espera por un lock request granted. Otro punto visto en la figura es que los participantes de procesador de datos envan un mensaje de fin de operacin al coordinador TM. La otra alternativa es que cada DP envie a su propio coordinador que puede liberar los bloqueos y este informe al TM. Algoritmos de estampa de tiempo En un sistema distribuido cada transaccin debe tener una estampilla de tiempo nica para usar en la decisin del orden de serializabilidad. Para la generacin de estampillas nicas, en el modelo distribuido: cada transaccin tiene una estampilla de tiempo que surge de concatenar la estampilla de tiempo local con el identificador de sitio. A diferencia de los algoritmos basados en

bloqueo , estos no pretenden mantener la seriabilidad por exclusin mutua. En lugar de eso , ellos se seleccionan en un orden de serializacion a priori y ehecutan las transacciones de acuerdo a ellas. Para establecer ese orden , el administrador de transacciones le asigna a cada transaccin Ti una estampa de tiempo nica ts(Ti) cuando esta inicia. Una estampa de tiempo es un identificador simple que sirve para identificar cada transaccin de manera nica. Otra propiedad de las estampas de tiempo es la monoticidad, esto es , dos estampas de tiempo generadas por el mismo administrador de transacciones deben ser igualmente crecientes. Asi las estampas d tiempo son valores derivador de un dominio totalmente ordenado. Timestamp es un mecanismo en que el orden de seriabilizacion se selecciona a priori , la ejecucin de la transaccin es obligada a obedecer este orden . en el timestamp cada transaccin esta tiene asignado un nico timestamp por el sincronizador. Obviamente , para lograr un nico timestamp para las transacciones que llegan de nodos diferentes de un sistema distribuido , todos los relojes en todos los nodos deben sincronizarse y adems deben resolverse dos timestamps idnticos. Existen varias formas en que las estampas de tiempo se pueden asignar. Un mtodo es usar un contador global monotonicamente creciente. Sin embargo , el mantenimiento de contadores globales es un problema n sistemas distribuidos. Por lo tanto, es preferible que cada nodo asigne de manera autnoma las estampas de tiempo basndose en un contador local . Para obtener la unicidad cada nodo le agrega al contador su propio identificador. Asi la estampa de tiempo es un par de la forma <contador local, identificador de nodo> Note que el identificador de nodo de agrega en la posicio menos significativa, de manera que , este sirve solo en el caso que dos nodos diferentes le asignen el mismo contador local a dos transacciones diferentes . El administrador de transacciones asigna tambin una estampa de tiempo a todas las operaciones solicitadas por una transaccin. Mas aun , a cada elemente de datos x se le asigna una estampa de tiempo de escritura wts(x) y una estampa de lectura rts(x) sus valores indican la estampa de tiempo mas grande para cualquier lectura y escritura de x, respectivamente. El orden de estampas de tiempo se realiza mediante la siguiente regla: Dadas dos operaciones en conflicto Oij y Okl , perteneciendo a las transacciones Ti y Tk , respectivamente , Oij es ejecutada anes de Okl si y solamente si , ts(Ti)<ts(Tk). En este caso Ti se dice ser una transaccin mas vieja y Tk se dice ser una transaccin mas joven. Dado este orden un conflicto entre operaciones se puede resolver de la siguiente forma:

Algoritmo bsico Implementa la regla hablada anteriormente . Se asignan estampas de tiempo para cada transaccin y determina los sitios que almacenan cada dato y enva las operaciones a los otros sitios participantes. En el algotirmo se asigna un timestamp a cada operacin , en caso de lectura se devuelve el dato que tiene el acceso mas barato y en caso de escritura , se debe determinar todos los sitios a escribir. Cuando se debe abortar una operacin se debe asignar un nuevo tiempo stamp, sino se devuelve los resultados a los usuarios. Algoritmo BTO-SC Se analizan los time stamp de las lecturas y escrituras. En caso de que el ts(T)>rts(x) , se enva el dato al procesador de datos y se asigna el rts(x)<-ts(T) sino se debe rechazar. Al tratarse de una escritura el ts(T) debe ser mayor al tiempo de escritura y lectura sino se rechaza. Cuando se aborta una operacin , se deben resetear los valores a los valores iniciales que han sido afectados por la transaccin. Como se indic anteriormente, una transaccin que contiene una operacin que es rechazado por un programador que se reinicie el administrador de transacciones con un timstamp nuevo. Esto asegura que la operacin tiene la oportunidad de ejecutar en su nuevo intento. Como nunca las transacciones esperar mientras tengan derechos de acceso a elementos de datos, la base no A causa bloqueos. Sin embargo, la pena de interbloqueo de la libertad de es el reinicio potenciales de una transaccin en numerosas ocasiones. el programador tiene que abstenerse de enviar otra operacin incompatibles, pero aceptable para el procesador de datos hasta que el primero se procesa y se reconoci. Esto es requisito para asegurar que el procesador de datos exeutes las operaciones en el orden en el que el programador

las pasa. Caso contrario, el leer y escribir los valores de timestamp para el elemento de datos de acceso no sera exacto. La programacin puede aplicar el ordenamiento mediante el mantenimiento de una cola para cada elemento de datos que se utiliza para retrasar la transferencia de la operacin aceptada hasta un acuse de recibo se recibe desde el procesador de datos con respecto a la operacin que haba anteriormente en el mismo elemento de datos. Conservative TO Algorithm Se relaciona al algoritmo anterior, pero este evalua que muchos restart es desventajoso para el rendimiento. Este algoritmo intenta reducir la sobrecarga del sistea reduciendo el numero de restart. El ordenamiento bsico por estampas de tiempo trata de ejecutar una operacin tan pronto como se recibe una operacin. As, la ejecucin de las operaciones es progresiva pero pueden presentar muchos reinicios de transacciones. El ordenamiento conservador de estampas de tiempo retrasa cada operacin hasta que exista la seguridad de que noser reiniciada. La forma de asegurar lo anterior es sabiendo que ninguna otra operacincon una estampa de tiempo menor puede llegar al despachador. Un problema que se puede presentar al retrasar las operaciones es que sto puede inducir la creacin deinterbloqueos (deadlocks). las operaciones de sistema operativo se cada transaccin se almacenan hasta un pedido puede establecerse de modo que los rechazos no son posibles, y que se ejecutan en ese orden. Administrador de Transacciones que Coordina. Administradores de bloqueos que Participan. Procesadores de datos de nodos participantes.

También podría gustarte