¿Qué significa confirmación en dos fases?
Un commit en dos fases (confirmación en dos fases) es un protocolo estandarizado que garantiza la ejecución de un commit de base de datos en el caso de que una operación de commit deba dividirse en dos partes separadas.
La gestión de bases de datos, guardar los cambios en los datos se conoce como commit y deshacer los cambios se conoce como rollback. Ambas operaciones pueden realizarse fácilmente utilizando el registro de transacciones cuando se trata de un único servidor, pero cuando los datos están repartidos entre servidores geográficamente diversos en informática distribuida (es decir, cada servidor es una entidad independiente con registros de registro separados), el proceso puede resultar más complicado.
Diccionario Techopedia: Commit en dos fases
En una transacción distribuida se necesita un objeto especial, conocido como coordinador. Como su nombre indica, el coordinador organiza las actividades y la sincronización entre los servidores distribuidos. El commit en dos fases se implementa de la siguiente manera:
Fase 1 – Cada servidor que necesita consignar datos escribe sus registros de datos en el registro. Si un servidor no tiene éxito, responde con un mensaje de fallo. Si tiene éxito, el servidor responde con un mensaje OK.
Fase 2 – Esta fase comienza después de que todos los participantes respondan OK. A continuación, el coordinador envía una señal a cada servidor con instrucciones de confirmación. Después de confirmar, cada uno escribe la confirmación como parte de su registro de log para referencia y envía al coordinador un mensaje de que su confirmación se ha implementado con éxito. Si un servidor falla, el coordinador envía instrucciones a todos los servidores para revertir la transacción. Una vez que los servidores han revertido la transacción, cada uno envía un mensaje indicando que la transacción se ha completado.