Imagem de fundo

Um arquiteto de sistemas de uma instituição financeira gerencia um ambiente de banco de...

Um arquiteto de sistemas de uma instituição financeira gerencia um ambiente de banco de dados distribuído que opera com o protocolo de efetivação em duas fases (2PC) para garantir a consistência ACID. Em um cenário de auditoria, uma transação T1 envolve o débito na conta de um cliente no servidor X e o crédito na conta de uma loja no servidor Y. Durante a execução, o coordenador da transação emite a ordem de preparação e tanto o servidor X quanto o servidor Y respondem afirmativamente (Vote Commit), entrando no estado de prontidão. Imediatamente após receber os votos, o coordenador toma a decisão de efetivar a transação e grava o registro Commit em seu armazenamento estável, mas falha criticamente antes de conseguir transmitir a mensagem de decisão para qualquer um dos servidores participantes. Diante desse cenário de falha do coordenador após o voto de prontidão dos participantes, qual é o comportamento técnico obrigatório do servidor Y?


A

O servidor deve aplicar um timeout e abortar unilateralmente a transação para liberar os bloqueios dos registros da conta da loja.


B

O servidor entra em um estado de bloqueio, mantendo os recursos travados indefinidamente até que o coordenador seja restaurado e informe a decisão tomada.


C

O servidor deve assumir o papel de novo coordenador e reenviar a mensagem de preparação para o servidor X a fim de concluir a transação.


D

O servidor consulta seus logs locais e, ao verificar que votou sim, executa o Commit da transação baseando-se na probabilidade estatística de sucesso.


E

O servidor solicita ao cliente que reenvie a requisição da transação para que um novo identificador global seja gerado e o processo reiniciado.