Acerca das tecnologias que atendem a PDPJ-Br, julgue o próxi...

Próximas questões
Com base no mesmo assunto
Q2562295 Banco de Dados
Acerca das tecnologias que atendem a PDPJ-Br, julgue o próximo item.


O banco de dados PostgreSQL possui um tratamento automático para resolver situações de deadlock, embora seja difícil prever qual das transações conflitantes será interrompida.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é C - certo.

Vamos agora entender o motivo dessa alternativa ser a correta.

O PostgreSQL é um banco de dados relacional avançado que implementa diversos mecanismos de controle de concorrência, um dos quais é a detecção e resolução de deadlocks.

Deadlock ocorre quando duas ou mais transações se bloqueiam mutuamente, esperando que a outra libere recursos, resultando em um impasse onde nenhuma transação pode prosseguir.

O PostgreSQL possui um mecanismo automático para identificar e resolver esses deadlocks. Quando o sistema detecta um deadlock, ele escolhe uma das transações envolvidas para ser interrompida (abortada), permitindo que as outras continuem. Isso é feito para garantir que o banco de dados não entre em um estado de inatividade contínua.

No entanto, o PostgreSQL não especifica qual transação será interrompida. A escolha é feita com base em critérios internos, que podem incluir fatores como o tempo de execução da transação e ordem de chegada. Portanto, é difícil prever qual transação será abortada em um cenário de deadlock, mas o importante é saber que o mecanismo de detecção e resolução está em funcionamento.

Para esclarecer as alternativas:

C - certo: De fato, o PostgreSQL possui um tratamento automático para resolver situações de deadlock. A imprevisibilidade sobre qual transação será interrompida é característica desse processo, validando a afirmativa.

E - errado: Essa alternativa seria incorreta porque contradiz a funcionalidade do PostgreSQL que efetivamente detecta e resolve deadlocks automaticamente.

Gostou do comentário? Deixe sua avaliação aqui embaixo!

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

Certo.

"O PostgreSQL possui um mecanismo robusto para detectar e resolver situações de deadlock de forma automática. Quando duas ou mais transações entram em um estado de espera mútua, o sistema identifica esse impasse e, para restabelecer a consistência, aborta uma das transações envolvidas.

A escolha da transação a ser abortada é, de fato, indeterminística. Isso se dá por diversos motivos:

  • Complexidade dos Grafos de Espera: À medida que o número de transações e bloqueios aumenta, o grafo de espera (uma representação visual das dependências entre as transações) se torna cada vez mais complexo. Identificar a transação "culpada" por iniciar o deadlock pode ser computacionalmente caro e, em alguns casos, até mesmo impossível.
  • Custos de Abortar uma Transação: O custo de abortar uma transação varia dependendo do trabalho já realizado e das alterações que precisam ser revertidas. Escolher a transação mais "barata" de abortar pode ser difícil de quantificar.
  • Equidade: Para evitar que uma mesma transação seja sempre a vítima de um deadlock, os algoritmos de detecção e resolução tendem a escolher aleatoriamente entre as transações envolvidas."

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo