Em determinada funcionalidade de um sistema interno de um ór...

Próximas questões
Com base no mesmo assunto
Q75433 Banco de Dados
Em determinada funcionalidade de um sistema interno de um órgão público, é necessário realizar uma transação em um banco de dados distribuído, segundo o protocolo Two-Phase Commit (2PC) ou o Three-Phase Commit (3PC), sobre os quais afirma-se que
Alternativas

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

A questão tenta confundir o candidato com dois conceitos não relacionados: Commit em duas fases e Bloqueio em duas fases

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