Tecnologia em Análise e Desenvolvimento de
Sistemas
Administração de Banco de Dados
Aula 17
Técnicas de Controle de
Concorrência
❖
Deadlock
❖ Os registros de timestamp (TS) são baseados,
geralmente, na ordem em que as transações são iniciadas.
❖ Se T 1 inicia antes de T 2 , então TS(T1) < TS(T2).
Técnicas de Controle de
Concorrência
❖
Deadlock
❖ Duas técnicas de prevenção, que utilizam o
conceito de registro de timestamp, são:
❖ wait-die (esperar-morrer);
❖ wound-wait (ferir-esperar).
3
Situação problema: Em um determinado escalonamento, a transação Ti tenta bloquear um item X mas não pode fazê-lo porque X está bloqueado
Técnicas de Controle de
Concorrência
❖ Deadlock
❖ Wait-die (esperar-morrer)
❖ Se TS(Ti) < TS(Tj), ou seja, Ti mais antiga do que Tj, então
❖ Ti é autorizada a esperar.
❖ Se TS(Ti) > TS(Tj), ou seja, Ti mais nova do que Tj , então
Técnicas de Controle de
Concorrência
❖ Deadlock
❖ Wait-die (esperar-morrer)
❖ Portanto a transação:
❖ Mais antiga:
❖ É autorizada a esperar por uma transação mais nova;
❖ Mais nova:
❖ Que requeira um item bloqueado por uma transação mais antiga, é abortada e reiniciada.
Técnicas de Controle de
Concorrência
❖ Deadlock
❖ Wound-wait (ferir-esperar)
❖ Se TS(Ti) < TS(Tj), ou seja, Ti mais antiga do que Tj , então
❖ Tj é abortada (Ti fere Tj) e reiniciada posteriormente com o mesmo valor de registro de timestamp.
❖ Se TS(Ti) > TS(Tj), ou seja, Ti mais nova do que Tj , então
Técnicas de Controle de
Concorrência
❖ Deadlock
❖ Wound-wait (ferir-esperar)
❖ Portanto, em tal esquema, uma transação:
❖ Mais nova
❖ É autorizada a esperar pela mais antiga;
❖ Mais antiga
❖ Que requeira um item bloqueado por uma
transação mais nova, apropria-se da transação mais nova, abortando a mesma.
Técnicas de Controle de
Concorrência
❖ Deadlock
Técnicas de Controle de
Concorrência
❖
Starvation (inanição)
❖ Ocorre quando uma transação não pode continuar sua
execução em um intervalo indefinido de tempo, enquanto
outras transações são executadas normalmente.
Técnicas de Controle de
Concorrência
❖
Starvation (inanição)
❖ Na prática, pode ocorrer quando:
❖ O esquema de espera para itens bloqueados for injusto,
priorizando algumas transações em relação a outras;
❖ Solução 1: quanto mais uma transação esperar, aumentar a
sua prioridade de execução.
❖ Solução 2: utilizar um esquema de fila de tal forma que a
Técnicas de Controle de
Concorrência
❖
Starvation (inanição)
❖ Na prática, pode ocorrer quando:
❖ A mesma transação, no processo de seleção de vítima, for
escolhida como vítima repetidamente.
❖ Solução: aumentar a prioridade de execução de transações
que tenham sido abortadas inúmeras vezes.
Técnicas de Controle de
Concorrência
❖
Multiversão
❖ Armazenam os valores antigos de um item de dado
quando o mesmo é atualizado;
❖ Quando uma transação escreve um item, uma nova
versão do item é escrita e a versão antiga do item é
Técnicas de Controle de
Concorrência
❖
Multiversão
❖ Algumas operações de leitura, que seriam rejeitadas em
outras técnicas, passam a ser aceitas por meio da leitura
de uma versão anterior do item para manter a
serialização.
Técnicas de Controle de
Concorrência
❖
Multiversão
❖ Desvantagem: necessidade de um volume maior de
armazenamento para manter as versões dos itens do
banco.
❖ As técnicas multiversão são ideais para banco de dados
Técnicas de Controle de
Concorrência
❖
Técnicas de validação (otimistas)
❖ Nenhuma verificação é realizada enquanto a transação
está sendo executada, diminuindo um custo adicional
durante a execução da transação.
❖ Geralmente, as técnicas otimistas de controle de
concorrência funcionam bem se houver pouca
interferência (suposição otimista) entre as transações de
um escalonamento.
Técnicas de Controle de
Concorrência
❖
Técnicas de validação (otimistas)
❖ Uma das técnicas otimistas propõe as seguintes regras:
❖ Atualizações na transação não são aplicadas diretamente
aos itens do banco de dados até que a transação atinja seu
final.
❖ Todas as atualizações são aplicadas a cópias locais dos itens
Técnicas de Controle de
Concorrência
❖
Técnicas de validação (otimistas)
❖ Uma das técnicas otimistas propõe as seguintes regras:
❖ Ao final de uma transação, a fase de validação verifica se
qualquer uma das atualizações da transação viola a
serialização.
❖ Se a serialização não for violada, a transação é confirmada e
o banco de dados é atualizado a partir das cópias locais; caso
contrário, a transação é abortada e posteriormente
reiniciada.
Técnicas de Controle de
Concorrência
❖
Granularidade de Itens de Dados
❖
Os mecanismos de controle de concorrência assumemque um BD é formado por uma coleção de itens de dados,
sendo que um item de dados pode ser:
❖
um registro (tupla) do banco de dados;❖
um valor de campo (atributo) de um registro do banco;❖
um bloco de disco;Técnicas de Controle de
Concorrência
❖
Granularidade de Itens de Dados
❖
A granularidade de um item de dados, ou seja, o tamanhodo item de dados, pode afetar o desempenho do controle
de concorrência e da recuperação de falhas.
Técnicas de Controle de
Concorrência
❖
Nível de Granularidade para o Bloqueio
❖
Quanto maior o tamanho do item de dados, menor é ograu de concorrência permitido:
❖
Se o tamanho do item de dados for um bloco de disco, umatransação T, que precisa bloquear um registro A, deve
bloquear o bloco de disco X inteiro que contém A. Se outra
transação S necessita bloquear o registro B que esteja no
Técnicas de Controle de
Concorrência
❖
Nível de Granularidade para o Bloqueio
❖
Quanto maior o tamanho do item de dados, menor é ograu de concorrência permitido:
❖
Se o tamanho do item de dados fosse um único registro, Spoderia prosseguir pois estaria bloqueando um registro
diferente.
Técnicas de Controle de
Concorrência
❖
Nível de Granularidade para o Bloqueio
❖
Quanto menor o tamanho do item de dados, maior é onúmero de itens no banco de dado a serem gerenciados.
❖ Já que cada item está associado a um bloqueio, o sistema
terá um grande número de bloqueios ativos a serem
tratados pelo gerenciador de bloqueios, gerando um
overhead maior e necessitando um espaço de
Técnicas de Controle de
Concorrência
❖
Nível de Granularidade para o Bloqueio
❖
O tamanho do item de dados depende dos tipos detransações envolvidas no sistema.
❖
Se uma transação típica acessa um pequeno número deregistros, a granularidade de item de dados como um
registro é vantajosa.
Técnicas de Controle de
Concorrência
❖
Nível de Granularidade para o Bloqueio
❖
Se uma transação normalmente acessa muitos registrosde um mesmo arquivo, a granularidade de bloco de disco
ou arquivo, de modo que a transação considere todos
esses registros como um ou poucos itens de dados, pode
Técnicas de Controle de
Concorrência
❖
Nível de Granularidade para o Bloqueio
❖
Um sistema de banco de dados deve suportar diversos ediferentes níveis de granularidade para atender às várias
e possíveis combinações de transações.
Técnicas de Controle de
Concorrência - Exercícios
❖ 1) Uma das técnicas empregadas por SGBD, para implementar o controle de transações concorrentes, é a utilização de bloqueios.
Para garantir a serialização da escala concorrente de várias
transações, deve(m)-se empregar o(s)
(A) protocolo de bloqueio em duas fases (two-phase locking)
(B) protocolo de bloqueio em três fases (three-phase commit)
(C) protocolo de bloqueio esperar-morrer (wait-die)
Técnicas de Controle de
Concorrência - Exercícios
❖ 2) O protocolo de bloqueio de duas fases (Two Phase Lock) é um dos mecanismos de
controle de concorrência utilizados em BD para evitar que as interações entre as
transações provoquem inconsistências no banco de dados. O protocolo de bloqueio de duas fases define:
(A) uma forma de serialização de transações concorrentes que garante que não ocorre Bloqueio Perpétuo (deadlock) entre essas transações, já que todos os bloqueios são liberados após o uso.
(B) duas etapas para o processamento de toda transação, sendo que na primeira etapa a
transação obtém bloqueios dos itens de dados, e na segunda etapa os bloqueios obtidos pela transação são liberados.
(C) as condições necessárias e suficientes para estabelecer a seriabilidade de um conjunto de operações realizadas pela execução de transações concorrentes.
(D) uma fase de execução, na qual a transação realiza todas as operações que teria de fazer sobre o BD e uma fase de validação, na qual se verifica se estas operações sofreram interferência indesejável de outras transações.
Técnicas de Controle de
Concorrência - Exercícios
❖ 3) A variação do protocolo de bloqueio de duas fases (2PL) na qual uma transação bloqueia todos os itens de dados acessados por ela antes que a transação inicie sua execução é denominada
(A) 2PL básico.
(B) 2PL estrito.
(C) 2PL conservador.
Técnicas de Controle de
Concorrência - Exercícios
❖ 4) O protocolo de bloqueio de duas fases (2PL) é importante para o controle de concorrência entre transações. O emprego do 2PL, em
todas as suas variações, garante que os escalonamentos produzidos
são:
(A) serializáveis.
(B) paralelos.
(C) livres de aborto de transações.
(D) livres de impasse (deadlock).
(E) livres de inanição (starvation).
Técnicas de Controle de
Concorrência - Exercícios
❖ 5) Ocorre deadlock quando uma transação de um conjunto com duas ou mais transações concorrentes aguarda por
algum item de dado que foi bloqueado por outra transação
do mesmo conjunto.
(C) Certo
Técnicas de Controle de
Concorrência - Exercícios
❖ 6) O deadlock (impasse) ocorre quando cada transação T em um
conjunto de duas ou mais transações estiver esperando por algum item de dado que esteja bloqueado por alguma outra transação no conjunto.
No protocolo esperar-morrer (wait-die), que busca a prevenção de
deadlocks, se a transação T1 precisa bloquear um item de dado que já está bloqueado pela transação T2, então:
(A) ocorrerá o aborto de T1, se T1 for mais antiga que T2. (B) ocorrerá o aborto de T1, se T1 for mais nova que T2.
(C) T1 entra em estado de espera, independente de ser mais nova ou antiga do que T2.
(D) T2 entra em estado de espera, independente de ser mais nova ou antiga do que T1.
Técnicas de Controle de
Concorrência - Exercícios
7) Diferencie o bloqueio em duas fases:
conservador, estrito e rigoroso.
8) O que é um timestamp? Como o sistema gera
timestamps?
Contato!!!!
Prof. Dra. Luciana M. Vieira Pöttker - Administração de Banco de Dados 29/08/2017 33