![]() |
||
Transacciones distribuidas
Las transacción proporciona un mecanismo para describir las unidades lógicas del procesamiento de una BD. Una transacción es una unidad lógica de procesamiento de la BD que incluye una o más operaciones de acceso a la BD, que pueden ser de inserción, eliminación, modificación o recuperación. Una transacción es una unidad atómica de trabajo que se realiza por completo o bien no se efectúa en absoluto. Para fines de recuperación el sistema necesita mantenerse al tanto de cuando la transacción se inicia, termina y se confirma o aborta. Modelo de transacciones distribuidas Ejemplo: Transacciones distribuidas 1. El coordinador envía una solicitud de voto (vote request) a los nodos participantes en la ejecución de la transacción. 2. Cuando los participantes reciben la solicitud de voto, responden enviando al coordinador un mensaje con su voto (Sí o No). Si un participante vota No, la transacción se aborta (abort). 3. El coordinador recoge los mensajes con los votos de todos los participantes. Si todos han votado Sí, entonces el coordinador también vota si y envía un mensaje commit a todos los participantes. En otro caso, el coordinador decide abandonar y envía un mensaje abort a todos los participantes que han votado afirmativamente. 4. Cada participante que ha votado sí, espera del coordinador un mensaje commit o abort para terminar la transacción de forma normal o abortarla. |
![]() |