Entiendo que se realizó una confirmación en tres fases para resolver el problema del "compromiso en dos fases" cuando en la segunda fase el coordinador y la cohorte fallan al mismo tiempo es imposible saber si el coordinador se había decidido un mensaje de compromiso.Confirmación trifásica
Al parecer, el compromiso de tres fases tiene como objetivo resolver este problema añadiendo una fase adicional. ¿Pero no enfrenta el mismo problema durante la tercera fase, si el coordinador y una cohorte fallan?
Para la posteridad, así es como define Wikipedia 3 fase de confirmación: http://en.wikipedia.org/wiki/Three-phase_commit_protocol – Gray
Esta es la esencia del artículo: El El protocolo de confirmación trifásico elimina este problema al introducir el estado Preparado para comprometer. Si el coordinador falla antes de enviar mensajes precompromisos, la cohorte acordará unánimemente que la operación se canceló. El coordinador no enviará un mensaje de doCommit hasta que todos los miembros de la cohorte hayan aceptado que están preparados para comprometerse. Esto elimina la posibilidad de que cualquier miembro de la cohorte completara la transacción antes de que todos los miembros de la cohorte tuvieran conocimiento de la decisión de hacerlo. – Ken
. No veo cómo agregar la fase adicional ayudará con el problema – Ken