Com relação ao controle de concorrência e à alta disponibili...

Próximas questões
Com base no mesmo assunto
Q349084 Banco de Dados
Com relação ao controle de concorrência e à alta disponibilidade de banco de dados, julgue os itens a seguir.

Quando o protocolo 2PL é utilizado para fazer o controle de concorrência, o desfazimento de uma transação pode levar ao desfazimento de outras transações, em um efeito cascata.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: C - certo

O tema em questão se refere ao controle de concorrência em bancos de dados, especificamente abordando o protocolo 2PL (Two-Phase Locking ou Bloqueio em Duas Fases). O conhecimento necessário para solucionar esta questão envolve entender o que é o protocolo 2PL e como ele funciona em relação às transações em um banco de dados.

O protocolo 2PL é utilizado para garantir a consistência em ambientes onde múltiplas transações podem ocorrer simultaneamente. Ele opera em duas fases distintas:

  • Fase de Crescimento: onde as travas (locks) são adquiridas e nenhuma pode ser liberada.
  • Fase de Decrescimento: onde as travas são liberadas e nenhuma nova trava pode ser adquirida.

A declaração é correta porque, de fato, se uma transação for desfeita ('rollback') durante o uso do protocolo 2PL, e essa transação já possuiu travas compartilhadas ou exclusivas em recursos que outras transações dependem, pode-se gerar o que é chamado de efeito cascata. Isso ocorre porque o desfazimento de uma transação pode liberar travas que outras transações estão esperando. Se essas transações prosseguirem com base em informações que posteriormente são revertidas, elas também podem ter que ser desfeitas para manter a consistência do banco de dados.

Portanto, o protocolo 2PL, ao garantir a propriedade de serialização das transações para que elas sejam executadas de forma consistente, pode sim conduzir a um efeito em cascata de desfazimentos se uma das transações envolvidas for revertida.

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

Pode-se provar que, se toda transação em um escalonamento segue o

protocolo 2PL, então a transação é serializável. Embora o protocolo 2PL garanta

a serializabilidade, bloqueios podem gerar dois problemas: impasse (deadlock) e

inanição (livelock).

Deadlock ocorre quando, existem duas transações bloqueando o mesmo

item e cada uma das duas está esperando que a outra libere este bloqueio. A

solução mais comum para este problema de impasse é abortar uma das

transações envolvidas. Existem diversas implementações diferentes para decidir

qual transação deve ser interrompida no caso de um impasse, geralmente é

escolhida a transação mais nova. Isso pode causar o livelock (quando o sistema

não consegue decidir qual das transações deve ser abortada), então é introduzida

uma prioridade para as transações (por exemplo, maior prioridade para

transações que já foram abortadas anteriormente).

Variação do protocolo 2PL

Além do protocolo básico, existem duas variações comumente adotadas do

protocolo 2PL:

2PL conservador (ou estático) – requer que todos os itens a serem usados por

uma transação (lidos ou escritos) sejam bloqueados antes do início da transação.

Esta variação do protocolo evita que sejam gerados deadlocks.

2PL estrito – a transação não libera seus bloqueios até que tenha sido

comprometida ou abortada (diminui o grau de concorrência do sistema, mas evita

ter que desfazer transações).

http://www.cpdee.ufmg.br/documentos/PublicacoesDefesas/636/bd2.pdf

A questão exige do candidato a compreensao do funcinamento do protocolo 2 Phase Lock no modo Básico. Vamos aos comentários:

 

O 2PL (2 phase lock) é um protocolo baseado em bloqueio para evitar inconsistencias na transacao. O funcionamento do protocolo no modo Básico (padrao) pressupoe que itens da mesma transacao podem estar no estado LOCK e UNLOCK. É nessa caracteristica de funcionamento que podemos observar semanticamente o comportamento descrito na assertiva, ou seja, um item da transacao inicial que ja foi liberado (UNLOCK) pode ser requisitado por uma nova transacao. Caso a transacao inicial(que ainda nao tinha sido finalizada em todos os seus itens) precise ser desfeita, a transacao subsequente (que estava utilizando o item liberado anteriormente) tambem será impactada pelo desfazimento.

 

Gabarito, CERTO.

 

FFF

Clique para visualizar este comentário

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