Protocolo de confirmación de dos fases

Arquitectura comuneditar

En muchos casos, el protocolo de 2 PIEZAS se distribuye en una red informática. Se distribuye fácilmente mediante la implementación de múltiples componentes dedicados de 2 PIEZAS similares entre sí, típicamente llamados gestores de transacciones (TMs, también conocidos como agentes de 2 PIEZAS o Monitores de Procesamiento de Transacciones), que llevan a cabo la ejecución del protocolo para cada transacción (por ejemplo, el X/Open XA del Grupo Abierto). En las bases de datos involucradas con una transacción distribuida, los participantes, tanto el coordinador como los participantes, se registran para cerrar TMs (que normalmente residen en los mismos nodos de red respectivos que los participantes) para terminar esa transacción utilizando 2 PIEZAS. Cada transacción distribuida tiene un conjunto ad hoc de TMs, los TMs en los que se registran los participantes de la transacción. Un líder, el coordinador TM, existe para cada transacción para coordinar 2 PIEZAS para ella, generalmente el TM de la base de datos del coordinador. Sin embargo, el rol de coordinador puede transferirse a otro TM por razones de rendimiento o confiabilidad. En lugar de intercambiar mensajes de 2 PIEZAS entre ellos, los participantes intercambian los mensajes con sus respectivos TMs. Los TMs relevantes se comunican entre sí para ejecutar el esquema de protocolo de 2 PIEZAS anterior, «representando» a los respectivos participantes, para terminar esa transacción. Con esta arquitectura, el protocolo está completamente distribuido (no necesita ningún componente de procesamiento central o estructura de datos), y se escala con el número de nodos de red (tamaño de red) de manera efectiva.

Esta arquitectura común también es efectiva para la distribución de otros protocolos de compromiso atómico además de 2 PIEZAS, ya que todos estos protocolos utilizan el mismo mecanismo de votación y propagación de resultados a los participantes del protocolo.

Optimizaciones de protocoloseditar

Se ha realizado una investigación de base de datos sobre formas de obtener la mayoría de los beneficios del protocolo de confirmación de dos fases al tiempo que se reducen los costos mediante optimizaciones de protocolos y operaciones de protocolo que se ahorran bajo ciertas suposiciones de comportamiento del sistema.

Presunto aborto y Presunto CommitEdit

Presunto aborto o Presunto commit son optimizaciones comunes de este tipo. Una suposición sobre el resultado de las transacciones, ya sea confirmar o abortar, puede guardar los mensajes y las operaciones de registro de los participantes durante la ejecución del protocolo 2PC. Por ejemplo, cuando se presume un aborto, si durante la recuperación del sistema de un fallo el procedimiento de recuperación no encuentra evidencia registrada de confirmación de alguna transacción, entonces asume que la transacción se ha abortado y actúa en consecuencia. Esto significa que no importa si se registran los abortos, y dicho registro se puede guardar bajo este supuesto. Por lo general, se paga una penalización por operaciones adicionales durante la recuperación de un fallo, dependiendo del tipo de optimización. Por lo tanto, la mejor variante de optimización, si la hay, se elige de acuerdo con las estadísticas de errores y resultados de transacciones.

Protocolo de confirmación de dos fases en Treeeditar

El protocolo Tree 2PC (también llamado 2PC anidado o 2PC recursivo) es una variante común de 2PC en una red informática, que utiliza mejor la infraestructura de comunicación subyacente. Los participantes en una transacción distribuida se invocan típicamente en un orden que define una estructura de árbol, el árbol de invocaciones, donde los participantes son los nodos y los bordes son las invocaciones (enlaces de comunicación). El mismo árbol se utiliza comúnmente para completar la transacción mediante un protocolo de 2 PIEZAS, pero también se puede utilizar otro árbol de comunicación para esto, en principio. En un árbol de 2 PIEZAS, el coordinador se considera la raíz («parte superior») de un árbol de comunicación (árbol invertido), mientras que los participantes son los otros nodos. El coordinador puede ser el nodo que originó la transacción (invocado recursivamente (transitivamente) a los otros participantes), pero también otro nodo en el mismo árbol puede tomar el rol de coordinador en su lugar. Los mensajes de 2 PIEZAS del coordinador se propagan » hacia abajo «en el árbol, mientras que los mensajes al coordinador son» recopilados «por un participante de todos los participantes debajo de él, antes de que envíe el mensaje apropiado» hacia arriba «en el árbol (excepto un mensaje de aborto, que se propaga» hacia arriba » inmediatamente después de recibirlo o si el participante actual inicia el aborto).

El protocolo de compromiso dinámico de dos fases (Compromiso dinámico de dos fases, D2PC) es una variante del Árbol 2PC sin un coordinador predeterminado. Incluye varias optimizaciones que se han propuesto anteriormente. Los mensajes de acuerdo (votos a favor) comienzan a propagarse desde todas las hojas, cada hoja al completar sus tareas en nombre de la transacción (estar listo). Un nodo intermedio (que no sea hoja) envía listo cuando un mensaje de acuerdo al último nodo vecino (único) desde el que aún no se ha recibido el mensaje de acuerdo. El coordinador se determina dinámicamente por mensajes de acuerdo de carreras sobre el árbol de transacciones, en el lugar donde chocan. Chocan en un nodo de árbol de transacciones, para ser el coordinador, o en el borde de un árbol. En este último caso, uno de los nodos de las dos aristas se elige como coordinador (cualquier nodo). D2PC es óptimo en el tiempo (entre todas las instancias de un árbol de transacciones específico y cualquier implementación de protocolo de árbol 2PC específico; todas las instancias tienen el mismo árbol; cada instancia tiene un nodo diferente como coordinador): Al elegir un coordinador óptimo, D2PC compromete tanto al coordinador como a cada participante en el mínimo tiempo posible, lo que permite la liberación lo antes posible de los recursos bloqueados en cada participante de transacción (nodo de árbol).

Deja una respuesta

Tu dirección de correo electrónico no será publicada.