Com relação ao controle de concorrência e à alta disponibili...
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.
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.pdfA 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