Imagem de fundo

Um arquiteto de sistemas de uma instituição financeira...

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.