Protocolos de coordenação de transações distribuídas, 3-phase commit, 3PC, ou confirmação em 3 fases, 3PC. Até agora nós conseguimos acompanhar que no 2PC nós temos desafios de ponto único de falha, que é o coordenador e também o risco de cairmos num bloqueio indefinido dos participantes daquela transação que está sendo operada com o protocolo 2PC. Então, nós temos uma extensão para o 3PC, confirmação em três fases e vamos nos aprofundar nessa abordagem agora. nessa abordagem agora. Resgatando a imagem que nós vimos na compreensão do protocolo 2PC, aqui nós vamos perceber que existe uma fase adicional antes da confirmação. Então, nós temos a preparação, como já acontecia no 2PC, surge uma frase de pré-compromisso ou pré-confirmação, a fase número 2, e após essa pré-confirmação, nós avançamos para a ação de confirmar, de commit, que é a fase 3. O objetivo principal dessa abordagem é justamente mitigar o bloqueio indefinido dos participantes, que podem ficar aguardando mensagens do coordenador, seja para reverter ou confirmar as operações de uma transação. Então, nós vamos ter a fase de preparação, o coordenador vai enviar uma mensagem de preparação para todos os participantes. Esses participantes vão retornar sinalizando que estão prontos para executarem a transação com a respectiva confirmação e somente avança se todos sinalizam que estão prontos para isso. Aí nós vamos entrar na nova fase, que é o pré-compromisso. Aí nós vamos entrar na nova fase, que é o pré-compromisso. E aqui nós temos uma mensagem de pré-compromisso que é enviada pelo coordenador para todos os participantes com a intenção de confirmar a transação. E os participantes podem negar ou confirmar o seu pré-compromisso com base na sua prontidão para confirmar, para dar o comit, nas operações que receberam daquela transação. Se todo mundo confirmar o pré-compromisso, então nós chegamos na etapa final, fase 3, de confirmação e os participantes executam e confirmam as operações daquela transação. Novamente, caso algum participante não confirme a transação, há reversão das operações e envio de mensagem de reversão, de rollback, para todos os participantes. Pontos de atenção sobre este protocolo. participantes. Pontos de atenção sobre este protocolo. Frequentemente o 3CC vai ser considerado irrealista nos ambientes distribuídos devido a uma dependência de sincronia perfeita entre os nossos participantes. E aqui eu deixo a pergunta para vocês, a pergunta retórica, onde que existe sincronia perfeita, onde que existe rede perfeita? Então, ainda assim, é possível entrar em um estado de bloqueio indefinido, caso haja falha do coordenador, ou se a sincronia não estiver perfeita entre os participantes, esse protocolo fica comprometido.