Sie sind auf Seite 1von 4

Protocolo de compromisos

Para garantizar la atomicidad, es preciso que todas las localidades en las que se haya ejecutado la transaccin T coincidan en el resultado final de la ejecucin. T debe quedar ejecutada o abortada en todas las localidades. Para garantizar esta propiedad, el coordinador de transacciones encargado de T debe ejecutar un protocolo de compromiso. Compromiso de dos-fases Sea T una transaccin que se inicio en la localidad Li, y sea Ci, el coordinador de transacciones de esa localidad. El protocolo de compromiso Cuando T termina de ejecutarse, es decir, cuando todas las localidades en las que se ejecuto T informan a Ci que T lleg a su trmino, Ci inicia el protocolo de compromiso de dos-fases.

Fase1 . Ci aade el registro < preparar T> a la bitcora y la graba en memoria estable. Una vez hecho esto enva un mensaje de preparar T a todas las localidades en las que se ejecut T. Al recibir el mensaje, el gestor de transacciones de cada una de esas localidades determina si esta dispuesto a ejecutar la parte de t que le correspondi. Si no est dispuesto, ste aade un registro < no T> la bitcora y a continuacin enviar un mensaje abortar T a Ci. Si la respuesta es afirmativa agregar un registro < T lista > a la bitcora y grabar todos los registros de bitcora que corresponden a T en memoria estable. Una vez hecho esto, responder a Ci con el mensaje T lista .

Fase2 . Una vez que todas las localidades hayan respondido al mensaje preparar T enviado a Ci, o despus de un intervalo de tiempo, previamente especificado, Ci puede determinar si la transaccin T puede ejecutarse o abortarse. Si Ci recibi el mensaje Tlista de todas las localidades que participan, la transaccin T puede ejecutarse. En caso contrario, la transaccin T debe abortarse. Segn haya sido el veredicto, se agregar un registro < ejecutar T> o < abortar T> a la bitcora y se grabar en memoria estable. En este punto, el destino de la transaccin se habr sellado. A continuacin, el coordinador enviar un mensaje < ejecutar T> o < abortar T> a todas las localidades participantes. Al recibir este mensaje, cada una de las localidades lo registra en la bitcora.

Segn [Elmasri / Navathe] Para fines de recuperacin, el sistema necesita mantenerse al tanto de cundo la transaccin se inicia, termina y se confirma o aborta. As pues, el gestor de recuperacin se mantiene al tanto de las siguientes operaciones:

INICIO_DE_TRANSACCIN : sta marca el principio de la ejecucin de la transaccin. LEER o ESCRIBIR : stas especifican operaciones de lectura o escritura de elementos de la base de datos que se efectan como parte de una transaccin. FIN_DE_TRANSACCIN : sta especifica que las operaciones de LEER y ESCRIBIR de la transaccin han terminado y marca el lmite de la ejecucin de la transaccin. Sin embargo, en este punto puede ser necesario verificar si los cambios introducidos por la transaccin se pueden aplicar permanentemente a la base de datos (confirmar) o si la transaccin debe abortarse porque viola el control de concurrencia o por alguna otra razn. CONFIRMAR _ TRANSACCIN: sta seala que la transaccin termin con xito y que cualesquier cambios (actualizaciones) ejecutadas por ella se pueden confirmar sin peligro en la base de datos y que no se cancelarn. REVERTIR (o ABORTAR) : sta indica que la transaccin termin sin xito y que cualesquier cambios o efectos que pueda haber aplicado a la base de datos se deben cancelar.

Adems de las anteriores, algunas tcnicas de recuperacin requieren operaciones adicionales como las siguientes: DESHACER: Similar a revertir, pero se aplica a una sola operacin y no a una transaccin completa. REHACER: sta especifica que ciertas operaciones de transaccin de deben repetir (rehacer) para asegurar que todas las operaciones de una transaccin confirmada se hayan aplicado con xito a la base de datos.

La figura 3.18 muestra el diagrama de transicin de estados que describe el paso de una transaccin por sus estados de ejecucin. Una transaccin entra en un

estado activo inmediatamente despus de que inicia su ejecucin, y ah puede emitir operaciones LEER y ESCRIBIR. Cuando la transaccin termina, para al estado parcialmente confirmado. En este punto, algunas tcnicas de control de concurrencia requieren que se efecten ciertas verificaciones para garantizar que la transaccin no interfiera otras transacciones en ejecucin. Una vez realizadas con xito las verificaciones, se dice que la transaccin ha llegado a su punto a su punto de confirmacin y pasa al estado confirmado. Una vez que una transaccin esta en el estado confirmado, ha concluido con xito su ejecucin.

Sin embargo, una transaccin puede pasar al estado fallido si una de las verificaciones falla o si la transaccin se aborta mientras est en el estado activo. El estado terminado corresponde al abandono del sistema por parte de la transaccin. Las transacciones fallidas o abortadas pueden reiniciarse posteriormente, ya sea en forma automtica o despus de reintroducirse como transacciones nuevas.

Resumen
Para fines de recuperacin, el sistema necesita mantenerse al tanto de cundo la transaccin se inicia, termina y se confirma o aborta. As pues, el gestor de recuperacin se mantiene al tanto de las siguientes operaciones: INICIO_DE_TRANSACCIN : sta marca el principio de la ejecucin de la transaccin. LEER o ESCRIBIR : stas especifican operaciones de lectura o escritura de elementos de la base de datos que se efectan como parte de una transaccin. FIN_DE_TRANSACCIN : sta especifica que las operaciones de LEER y ESCRIBIR de la transaccin han terminado y marca el lmite de la ejecucin de la transaccin. Sin embargo, en este punto puede ser necesario verificar si los cambios introducidos por la transaccin se pueden aplicar permanentemente a la base de datos (confirmar) o si la transaccin debe abortarse porque viola el control de concurrencia o por alguna otra razn. CONFIRMAR _ TRANSACCIN: sta seala que la transaccin termin con xito y que cualesquier cambios (actualizaciones) ejecutadas por ella se pueden confirmar sin peligro en la base de datos y que no se cancelarn. REVERTIR (o ABORTAR) : sta indica que la transaccin termin sin xito y que cualesquier cambios o efectos que pueda haber aplicado a la base de datos se deben cancelar. Adems de las anteriores, algunas tcnicas de recuperacin requieren operaciones adicionales como las siguientes: DESHACER: Similar a revertir, pero se aplica a una sola operacin y no a una transaccin completa.

REHACER: sta especifica que ciertas operaciones de transaccin de deben repetir (rehacer) para asegurar que todas las operaciones de una transaccin confirmada se hayan aplicado con xito a la base de datos.

Das könnte Ihnen auch gefallen