Em determinada funcionalidade de um sistema interno de um ór...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: E - somente o 2PC é bloqueante.
Para compreender essa questão, é importante ter conhecimento sobre os protocolos de controle de transações em bancos de dados distribuídos, principalmente o Two-Phase Commit (2PC) e o Three-Phase Commit (3PC). Ambos são utilizados para garantir a atomicidade e consistência das transações distribuídas, ou seja, assegurar que todas as partes envolvidas na transação concordem com o resultado final (seja ele sucesso ou falha) e que este resultado seja refletido em todos os nós de maneira consistente.
O protocolo 2PC é conhecido por ser bloqueante, o que significa que, se o coordenador falhar após enviar a solicitação de preparação para os participantes, estes podem ficar bloqueados indefinidamente, esperando por uma resposta que não chegará. O estado de bloqueio acontece porque as transações participantes não podem decidir independentemente sobre o comprometimento ou abortamento da transação, já que só o coordenador possui a visão completa do estado de todos os participantes.
O protocolo 3PC, por outro lado, foi projetado para ser não bloqueante. Ele introduz uma fase adicional que permite aos participantes alcançar um acordo mesmo na ausência de comunicação com o coordenador. Isso é feito através da fase de pre-commit e uma seleção de timeouts apropriados para que, em caso de falhas de comunicação, todos os nós possam concluir a mesma ação (comprometer ou abortar).
Com isso em mente, vamos analisar a alternativa correta:
A alternativa E está correta porque afirma que somente o 2PC é bloqueante. Como mencionado, o 3PC foi projetado para superar essa limitação específica do 2PC, implementando uma fase adicional que permite aos participantes prosseguir com uma decisão pré-definida após um período de espera, caso percam comunicação com o coordenador. Isso torna o 3PC capaz de lidar com falhas do coordenador sem deixar os participantes bloqueados indefinidamente.
É fundamental para um bom desempenho em concursos na área de bancos de dados ter uma compreensão sólida dos protocolos de controle de transações, suas características e diferenças, para resolver questões como esta.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Commit em três fases:
* Evita bloqueio de recursos no caso de falha
* Incorporação de timeout5
http://thiagomoreira.blog.com/2010/10/12/two-phase-commit-e-a-formula-1/
http://www.inf.ufrgs.br/gppd/disc/cmp167/trabalhos/sem2000-1/T1/cesarida/CommitProtocols_p.htm
os conceitos de write-lock, fase de expansão, fase de retração, citados nas letras c) e d) estão relacionados a Bloqueio em duas fases. Por isso, estas alternativas já podem ser eliminadas.
Em ambos os protocolos (2PC e 3PC) só existe um nó coordenador. Portando letra b) também é falsa.
Resta dizer que o 3PC foi criado justamente para resolver o problema de bloqueio (dead lock) do 2PC. 2PC é bloqueante e 3PC não é bloqueante. letra e) é a resposta.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo