No processamento de transações distribuídas em gerenciadores de bancos de dados, o algoritmo frequentemente empregado para garantir que todos os participantes de uma transação distribuída tenham conhecimento do seu desfecho é conhecido como:
- A)D-commit;
D-commit nao é o protocolo clássico conhecido para decisão coordenada em transações distribuídas, portanto esta alternativa está errada.
- B)Dynamic Data Exchange;
Dynamic Data Exchange é um mecanismo de troca de dados entre aplicações, nao um algoritmo de commit distribuído.
- C)Liveness;
Liveness é uma propriedade de sistemas, ligada à garantia de progresso, e nao o nome do protocolo pedido.
- D)Multi-commit;
Multi-commit nao é o protocolo consagrado na literatura para esse problema específico de coordenação de transações distribuídas.
- E)Two-phase commit.
Correta: o Two-phase commit é o protocolo usado para coordenar a decisão final em transações distribuídas e informar todos os participantes.
Gabarito: E
Em transações distribuídas, voce precisa garantir que todos os bancos participantes cheguem ao mesmo desfecho: ou todos confirmam a operação, ou todos desfecham o que fizeram. Isso evita a situação bizarra de um nó achar que deu tudo certo enquanto outro continua preso esperando uma decisão que nunca chega. O algoritmo clássico para isso é o Two-phase commit, ou protocolo de duas fases. Na primeira fase, o coordenador pergunta aos participantes se eles conseguem confirmar; na segunda, depois de receber as respostas, ele manda a decisão final de commit ou abort para todos. Assim, todos ficam sabendo o resultado da transação de forma coordenada. A ideia central da questão é justamente essa: em ambiente distribuído, nao basta executar a transação, é preciso também coordenar o desfecho entre os participantes. O two-phase commit é o mecanismo mais cobrado em Banco de Dados para garantir consistência na decisão final. Na prática, esse protocolo aparece como conteúdo de doutrina de sistemas de bancos de dados e transações distribuídas, e é o nome consagrado na literatura técnica. Por isso, o gabarito E está correto: ele identifica o algoritmo tradicional usado para assegurar que todos os envolvidos conheçam o desfecho da transação.