Compromiso de dos fases (2 piezas)

Definición: ¿Qué significa Compromiso en dos fases (2PC)?

Un compromiso de dos fases es un protocolo estandarizado que garantiza que un compromiso de base de datos se esté implementando en una situación en la que una operación de compromiso debe dividirse en dos partes separadas.

En la gestión de bases de datos, guardar cambios en los datos se conoce como confirmación y deshacer cambios se conoce como reversión. Ambos se pueden lograr fácilmente utilizando el registro de transacciones cuando se trata de un solo servidor, pero cuando los datos se distribuyen en servidores geográficamente diversos en la computación distribuida (es decir, cada servidor es una entidad independiente con registros de registro separados), el proceso puede volverse más complicado .

Techinfo explica el compromiso de dos fases (2PC)

Se requiere un objeto especial, conocido como coordinador, en una transacción distribuida. Como su nombre lo indica, el coordinador organiza las actividades y la sincronización entre servidores distribuidos. El compromiso de dos fases se implementa de la siguiente manera:

Fase 1: cada servidor que necesita confirmar datos escribe sus registros de datos en el registro. Si un servidor no tiene éxito, responde con un mensaje de error. Si tiene éxito, el servidor responde con un mensaje de OK.

Fase 2: esta fase comienza después de que todos los participantes responden OK. Luego, el coordinador envía una señal a cada servidor con instrucciones de compromiso. Después de la confirmación, cada uno escribe la confirmación como parte de su registro de registro como referencia y envía al coordinador un mensaje de que su confirmación se ha implementado correctamente. Si un servidor falla, el coordinador envía instrucciones a todos los servidores para revertir la transacción. Después de que los servidores retrocedan, cada uno envía comentarios de que esto se ha completado.