Módulo II: Controle de. Concorrência. (Aulas 1 e 7) Clodis Boscarioli

Tamanho: px
Começar a partir da página:

Download "Módulo II: Controle de. Concorrência. (Aulas 1 e 7) Clodis Boscarioli"

Transcrição

1 Módulo II: Controle de Concorrência (Aulas 1 e 7) Clodis Boscarioli

2 Agenda: Introdução a Controle de Concorrência; Protocolos baseados em Bloqueio; Protocolos baseados em Timestamp; Protocolos baseados em Validação; Protocolos baseados em Granularidade Múltipla; Esquemas de Multiversão; Tratamento de Deadlocks.

3 Introdução Uma das propriedades fundamentais de uma transação é o isolamento. Quando diversas transações são executadas de modo concorrente corre-se o risco de violar esta propriedade. É necessário que o sistema controle a interação entre transações concorrentes: esse controle é alcançado por meio de uma série de mecanismos, os quais unidos, formam o controle de concorrência. A base dos esquemas de concorrência discutidos aqui tem por base a propriedade de serialização, ou seja, todos os esquemas devem garantir que a ordenação de processamento seja serializada. Por enquanto, assumir que os sistemas não incorrem em falhas.

4 Protocolos com Base em Bloqueio Uma das formas de garantir que apenas escalonamentos serializáveis sejam produzidos é obrigar que o acesso aos itens de dados seja feito de maneira mutuamente exclusiva: Enquanto uma transação acessa um item de dados, nenhuma outra transação pode modificá-lo. Para implementar isso pode-se usar o método de bloqueio (lock).

5 Bloqueios 1. Bloqueio compartilhado: Se uma transação T i obteve um bloqueio compartilhado (denotado por S) sobre o item de dado Q, então T i pode ler, mas não escrever em Q. 2. Bloqueio exclusivo: Se uma transação T i obteve um bloqueio exclusivo (denotado por X) do item de dado Q, então T i pode tanto ler como escrever em Q. Toda transação precisa solicitar o bloqueio apropriado antes de executar qualquer operação sobre Q. Esta solicitação é feita ao controlador de concorrência. A transação só poderá executar qualquer operação sobre Q depois que controlador de concorrência conceder (grants) o bloqueio do dado à transação.

6 Função de Compatibilidade de Bloqueios Seja A e B uma representação arbitrária dos modos de bloqueio. Suponha que uma transação T i solicite um bloqueio do modo A sobre o item de dado Q, sobre o qual a transação T j (T i <> T j ) mantém um bloqueio do modo B. Se a transação T i conseguir o bloqueio do modo A, mesmo com a existência do bloqueio de modo B, então dize-se que o modo A é compatível com o modo B. Observe a matriz comp. Um elemento comp(a,b) da matriz possui valor verdadeiro se, e somente se, o modo A é compatível com o modo B. S X Falso S Verdadeiro Falso Falso X

7 Bloqueios Uma transação solicita um bloqueio: Compartilhado do item de dado Q executando a instrução lock-s(q); Exclusivo do item de dado Q executando a instrução lock-x(q); Um item de dado pode ser desbloqueado via instrução unlock(q). Uma transação pode desbloquear um item de dado a qualquer momento, mas deverá manter o bloqueio enquanto quiser operar sobre o dado.

8 Bloqueios T 1 : lock-x(b); read(b); B := B 50; write(b); unlock(b); lock-x(a); read(a); A := A + 50; write(a); unlock(a); T 2 : lock-s(a); read(a); unlock(a); lock-s(b); read(b); display (A + B); unlock(b); Se A = 100 e B = 200, o valor mostrado em T2 = 300.

9 Bloqueios T 1 T 2 Controle de concorrência lock-x(b) read(b) B := B 50 write(b); unlock(b) lock-x(a) read(a) A := A + 50 write(a) unlock(a) lock-s(a) read(a) unlock(a) lock-s(b) read(b) display(a+b) unlock(b) grant-x(b 1, T 1 ) grant-s(a 1,T 2 ) grant-s(b 1,T 2 ) grant-x(a 2,T 1 )

10 Bloqueios A escala de execução mostrada no slide anterior não é serializável em conflito e não é serializável em visão. A transação T 2 mostra o valor 250 dólares. A forma como os bloqueios foram concedidos permitiu que este escalonamento fosse criado. O controlador de concorrência pode impedir que escalonamentos errados sejam criados concedendo bloqueios de uma forma mais restrita. OBS.: A concessão do bloqueio, quando permitida, é feita entre o pedido de bloqueio e a execução da operação no item de dado. Assim, não serão explicitadas, nos escalonamentos, as operações de grant. Agora suponha que os desbloqueios sejam realizados no final das transações...

11 Bloqueios T 1 : lock-x(b); read(b); B := B 50; write(b); lock-x(a); read(a); A := A + 50; write(a); unlock(b); unlock(a); T 2 : lock-s(a); read(a); lock-s(b); read(b); display (A + B); unlock(a); unlock(b);

12 Bloqueios Observe que não é possível, com as transações definidas desta forma, realizar um escalonamento como mostrado anteriormente. T1 T2 Controle de concorrência lock-x(b) read(b) B := B 50 write(b); lock-x(a) lock-s(a) read(a) lock-s(b) grant-x(b 1, T 1 ) grant-s(a 1,T 2 ) Situação de deadlock.

13 Protocolos de bloqueio Exige-se que cada transação do sistema siga um determinado conjunto de regras, chamado de protocolo de bloqueio, indicando quando uma transação pode ou não bloquear ou desbloquear cada um dos itens de dados. Os protocolos de bloqueio restringem o número de escalas de execução possíveis. O conjunto de todas as escalas permitidas pelos protocolos de bloqueio forma um subconjunto de todas as escalas serializáveis possíveis.

14 Concessão de bloqueio Quando uma transação solicita bloqueio sobre um determinado item de dado em particular, e nenhuma outra transação mantém o mesmo item de dado bloqueado de modo conflitante, tal bloqueio pode ser concedido. Problema: Suponha que a transação T tenha um bloqueio compartilhado sobre Suponha que a transação T 2 tenha um bloqueio compartilhado sobre um item de dado e a transação T 1 solicite um bloqueio exclusivo do mesmo item. T 1 terá que esperar até que o bloqueio compartilhado feito por T 2 seja liberado. Enquanto isso, uma transação T 3 pode solicitar o bloqueio compartilhado sobre o mesmo item de dado. O bloqueio pedido é compatível com o bloqueio concedido a T 2, de modo que o bloqueio compartilhado pode ser concedido a T 3. Nesta altura, T 2 pode liberar o bloqueio, mas T 1 terá que esperar até que T 3 termine. Novamente, aparece uma transação T 4 que Logo, a transação T 1 poderá nunca ser processada, sendo então chamada de starved (ou, em starvation estagnada, em inanição).

15 Concessão de bloqueio Para evitar a inanição de transações... Quando uma transação T i solicita o bloqueio do item de dados Q de um modo particular M, o bloqueio é concedido, contanto que: Não haja nenhuma outra transação com bloqueio sobre Q cujo modo de bloqueio seja conflitante com M; Não haja nenhuma outra transação que esteja esperando um bloqueio sobre Q e que tenha feito sua solicitação de bloqueio antes de Ti.

16 Protocolo de bloqueio em duas fases Também conhecido como: Two-phase locking protocol Protocolo bi-fásico Protocolo que garante serialização. Este protocolo exige que cada transação emita suas solicitações de bloqueio e desbloqueio em duas fases: 1. Fase de expansão: uma transação pode obter bloqueios, mas não pode liberar nenhum. 2. Fase de encolhimento: uma transação pode liberar bloqueios, mas não consegue obter nenhum novo bloqueio.

17 Protocolo de bloqueio em duas fases As transações do slide 8 não têm duas fases. As transações do slide 11 têm duas fases. As instruções de bloqueio não precisam aparecer, necessariamente, no final da transação. Este protocolo garante serialização por conflito....

18 Protocolo de bloqueio em duas fases Considere qualquer transação. O ponto de escala no qual a transação obteve seu bloqueio final (o fim da fase de expansão) é chamado de ponto de bloqueio da transação. As transações podem ser ordenadas de acordo com seus pontos de bloqueio essa ordenação é, de fato, uma ordenação serializada de transações. Este protocolo não garante a ausência de deadlock.

19 Algumas palavras sobre recuperação Se uma transação T i falhar, por qualquer razão, é preciso desfazer seus efeitos para garantir a propriedade de atomicidade da transação. Em um sistema que permite execuções concorrentes, também é necessário assegurar que qualquer transação T j que seja dependente de T i (T j leu dados escritos por T i ) também seja abortada. Escalas de execução recuperáveis: quando a transação que é dependente de outra não é efetivada antes que a outra o seja. Escalas sem Cascata: quando para cada par de transações T i e T j, T j leia um item de dado previamente escrito por T i se T i já se efetivou.

20 Protocolo de bloqueio em duas fases Rollbacks em cascata podem ser evitados por uma modificação neste protocolo: Protocolo em duas fases severo: exige, em adição ao bloqueio feito em duas fases, que todos os bloqueios de modo exclusivo tomados por uma transação sejam mantidos até que a transação seja efetivada. Outra variante: Protocolo em duas fases rigoroso: exige que todos os bloqueio sejam mantidos até que a transação seja efetivada. Essas variantes são as mais usadas em implementações comerciais.

21 Upgrade de bloqueio Considere as transações: T 8 : read(a1), read(a2),..., read(an), write(a1) T 9 : read(a1), read(a2), display(a1+a2) Se o protocolo de bloqueio em duas fases for empregado, Se o protocolo de bloqueio em duas fases for empregado, então T 8 precisará bloquear A1 de modo exclusivo. Assim, qualquer execução concorrente de ambas as transações atinge uma execução serial. Entretanto, T 8 precisa de um bloqueio exclusivo de A1 somente ao final de sua execução, quando ela escreve A1. Assim, se T 8 estiver bloqueando A1 de modo compartilhado e depois mudar esse bloqueio para o modo exclusivo, poder-se-á obter mais concorrência.

22 Upgrade de bloqueio Conversão de bloqueio compartilhado para bloqueio exclusivo: upgrade Conversão de bloqueio exclusivo para bloqueio compartilhado: downgrade A promoção só pode acontecer durante a fase de expansão, e o rebaixamento só pode ocorrer durante a fase de encolhimento.

23 A implementação Quando uma transação T i emite uma operação read(q),o sistema emite uma instrução lock-s(q) seguida de uma instrução read(q). Quando T i emite uma operação write(q), o sistema verifica se T i ainda mantém um bloqueio compartilhado. Se ainda há, o sistema emite uma instrução upgrade(q), seguida de uma instrução write(q). De outro modo, o sistema emite uma instrução lock-x(q), seguida de uma instrução write(q). Todos os bloqueios obtidos por uma transação são desbloqueados depois da transação ser efetivada ou abortada.

24 Granularidade Múltipla Até agora, a referência a cada item de dado sempre foi como uma unidade à qual a sincronização é aplicada. Entretanto, diversos itens de dados podem ser tratados como uma unidade de sincronização individual. Se uma transação precisa de todo o BD, pode aplicar o bloqueio (no caso de um protocolo de bloqueio) a todo o BD, economizando na execução de código de atribuição de travas/bloqueios. O sistema pode implementar níveis múltiplos de granulação. Define-se diversos tamanhos aos itens de dados e Define-se uma hierarquia de granularidade a estes dados.

25 Granularidade Múltipla DB A1 A2 Fa Fb Fc Ra1 Ra2... Ran Rb1... Rbk Rc1... Rcn Quatro níveis: 1. O banco de dados como um todo; 2. Área: blocos que compõem o BD 3. Arquivo: tabelas (nenhum arquivo está em mais de uma área) 4. Registros: dados (nenhuma tupla está em mais de um arquivo)

26 Bloqueios Cada nó da árvore pode ter bloqueio individual (exclusivo ou compartilhado). Quando uma transação bloqueia um nó, tanto no modo compartilhado como no modo exclusivo, a transação também bloqueará todos os descendentes daquele nó no mesmo modo de bloqueio. Se uma transação bloqueia de forma explícita o arquivo F c, no modo exclusivo, então ela está bloqueando de forma implícita, no modo exclusivo, todos os registros pertencentes àquele arquivo. Se T j quiser bloquear o registro R b6 do arquivo F b, T j precisará percorrer a árvore da raiz até o registro R b6. Se algum nó do caminho estiver bloqueado de modo incompatível, então T j precisará esperar. Suponha que a transação T k queira bloquear todo o banco de dados. Para isso, ela precisa simplesmente bloquear a raiz da árvore. Entretanto, T k não deve conseguir o bloqueio, já que T i já está bloqueando parte da árvore. Inviabilidade.

27 Bloqueio Intencional Bloqueios intencionais serão feitos em todos os antecessores do nó antes que ele seja bloqueado de forma explícita. Assim uma transação não precisará pesquisar a árvore inteira (ou sub-árvore) se quiser bloquear um nó. Basta iniciar o percurso e verificar se existem bloqueios intencionais. Se existir, significa que itens de granularidade mais fina estão bloqueados. Neste caminho, enquanto os bloqueios intencionais não são encontrados, a transação vai deixando seus bloqueios intencionais.

28 Bloqueio Intencional Bloqueio intencional associado ao modo compartilhado. Bloqueio intencional associado ao modo exclusivo. Bloqueio compartilhado e intencional exclusivo. Função de compatibilidade: IS IX S SIX X IS V V V V F IX V V F F F S V F V F F SIX V F F F F X F F F F F

29 Protocolo de Bloqueio de Granularidade Múltipla Garante serialização. Cada transação T i pode bloquear um nó Q, usando as seguintes regras: A função de compatibilidade de bloqueio precisa ser observada; A função de compatibilidade de bloqueio precisa ser observada; A raiz da árvore precisa ser bloqueada primeiro e pode ser bloqueada em qualquer modo; Um nó Q pode ser bloqueado por T i no modo S ou IS somente se o seu pai for bloqueado por T i no modo IX ou IS. Um nó Q pode ser bloqueado por T i no modo X, SIX ou IX somente se o seu pai estiver bloqueado por T i no modo IX ou no modo SIX. T i pode bloquear um nó somente se ele não desbloqueou outro nó anteriormente (isto é, T i tem duas fases) T i pode desbloquear um nó Q somente se nenhum dos filhos de Q estiver bloqueado por T i.

30 Granularidade Múltipla Este protocolo exige que os bloqueios sejam feitos de cima para baixo e exige que as liberações sejam feitas de baixo par cima. Exemplo (considera a árvore do slide 25): Suponha que a transação T 1 leia o registro R a2 do arquivo F a. T 1 precisa bloquear o banco de dados, a área A 1, o arquivo F a no modo IS e, finalmente, bloquear R a2 no modo S. Suponha que a transação T 2 altere o registro R a9 do arquivo F a. T 2 precisa bloquear o banco de dados, a área A 1, o arquivo F a no modo IX e, finalmente, bloquear R a9 no modo X. Suponha que a transação T 3 leia todos os registros do arquivo F a. T 3 precisa bloquear o banco de dados e a área A 1 no modo IS e, finalmente bloquear F a no modo S. Suponha que a transação T 4 leia todo o BD. Então, poderá fazê-lo depois e bloquear o BD no modo S. T 1, T 3 e T 4 podem manter acesso ao BD concorrentemente. T 2 pode concorrer com T 1, mas não com T 3 nem com T 4.

31 Granularidade Múltipla Esse protocolo aumenta a concorrência e reduz o overhead por bloqueios. Útil para aplicações com: Transações curtas que mantêm acesso a poucos itens de dados; Transações longas que produzem relatório a partir de um arquivo ou de um conjunto de arquivos. O deadlock pode ocorrer.

32 Ordenamento por Timestamp Garante seriabilidade: Envolve o uso de timestamp para ordenar a execução das transações de forma que o escalonamento formado seja equivalente ao escalonamento serial. Timestamp: identificador único criado pelo SGBD para identificar uma transação. São associados na ordem em que as transações são submetidas ao sistema. TS(T) = timestamp da transação T. No escalonamento as transações tomam a ordem de seus timestamps Se TS(T i ) < TS(T j ), o sistema garante que o escalonamento produzido é equivalente ao escalonamento serial <T i T j >.

33 Algoritmo Básico Associa dois timestamps a cada item de dados X: Read_TS(X): o timestamp de leitura de X é o maior entre todos os timestamps de transações que leram X com sucesso; Write_TS(X): o timestamp de escrita de X é o maior entre todos os timestamps de transações que escreveram X com sucesso; Esses timestamps são atualizados sempre que uma instrução read(x) ou write(x) é executada. Assegura que as operações de leitura e escrita sejam executadas por ordem de timestamp.

34 Algoritmo Básico Exemplo Situação 1: a transação T requer uma operação de leitura. Se TS(T) < Write_TS(X), então T quer ler o valor de X que já foi sobrescrito por uma transação mais nova. Assim, a operação read é rejeitada e T é desfeita. Se TS(T) >= Write_TS(X), a transação que requer o dado é mais nova que a última que o escreveu. Assim, a operação read é executada e o Read_TS(X) recebe o maior valor entre o atual e o TS(T).

35 Algoritmo Básico Exemplo Situação 2: A transação T requer uma operação de escrita a. Se TS(T) < Read_TS(X), a transação é mais velha que a última transação que leu, ou seja, o valor de X que T está produzindo seria necessário antes. A operação de write é rejeitada e T é desfeita.

36 Algoritmo Básico Exemplo b. Se TS(T) < Write_TS(X) então T está tentando escrever um valor obsoleto em X. Logo, essa operação é rejeitada e T é desfeita. c. De outro modo, a operação write é executada e o Write_TS(X) é atualizado como TS(T).

37 Observações O algoritmo básico de ordenamento por timestamp checa se duas operações conflitantes ocorrem na ordem incorreta. Se sim, rejeita a última das duas operações abortando a transação que errou. Garantia da seriabilidade por conflito.

38 Observações Toda vez que uma transação tenta ler ou escrever um item de dado, o algoritmo compara seu timestamp com o timestamp de leitura ou escrita de X. A intenção é assegurar que o ordenamento por timestamp não seja violado. Se o ordenamento por timestamp for violado, a transação será abortada.

39 Observações Uma transação abortada pode, mais tarde, ser novamente submetida ao sistema como uma nova transação, e com um novo timestamp. Se T é abortada e desfeita, qualquer transação que tenha usado um valor escrito por T deve ser desfeita também. Pode cair em starvation.

40 Exemplo T 1 Read(B) T 2 Read(B) Read(A) display(a+b) B := B -50 Write(B) Read(A) A := A + 50 Write(A) display(a+b)

41 Exemplo Read Write T 1 Read(B) T 2 TS_(T 1 ) = 1 TS_(T 2 ) = 2 Read(A) display(a+b) Read(B) B := B - 50 Write(B) Read(A) A := A+ 50 Write(A) display(a+b) R_TS(B) W_TS(B) 0 2 R_TS(A) W_TS(A) 0 2 Op. R 1 (B) R 2 (B) W 2 (B) R 1 (A) R 2 (A) W 2 (A)

42 Regra de Thomas Modificação no algoritmo básico, que faz com que haja menos operações de escrita, aumentado as possibilidades de concorrência. Alteração na regra 2: Se Ts(T) < Write_TS(X), então T está tentando escrever um valor obsoleto para X. A operação de write pode ser ignorada. Deixa de garantir a seriabilidade em conflito.

43 Protocolos Baseados em Grafos Uma alternativa ao protocolo de duas fases; Impõem uma ordenação parcial sobre o conjunto D = {d 1, d 2,..., d n } de todos os itens de dados. Se d i d j então qualquer transação acessando d i e d j i j i j precisam acessar d i antes de acessar d j. Implica que o conjunto D pode ser visto como um grafo acíclico direcionado, chamado grafo do banco de dados. O Protocolo de Árvore é um tipo simples de protocolo de grafo.

44 Protocolo em Árvore

45 Protocolo em Árvore Somente bloqueios exclusivos são permitidos; O primeiro bloqueio por T i pode ser sobre qualquer item de dados. Subseqüentemente, um dado Q pode ser bloqueado por T i somente se o pai de Q estiver atualmente bloqueado por T i. Os itens de dados podem ser desbloqueados a qualquer tempo. Um item de dados que foi bloqueado e desbloqueado por T i não pode ser novamente bloqueado por essa mesma transação.

46 Protocolo em Árvore O protocolo em árvore garante serialização por conflito e assegura liberdade de deadlock. Protocolo não garante facilidade de recuperação ou liberdade de reversão em cascata: Necessita introduzir dependência de commit para garantir a recuperação. A transação pode ter que bloquear itens de dados que ela não acessa. Introduz overhead de bloqueio e, adicionalmente, tempo de espera adicional, com uma potencial diminuição na concorrência.

47 Protocolos baseados em Validação A execução da transação T i é feita em 3 fases: 1. Fase de Leitura e Execução: T i escreve apenas em variáveis temporárias locais, sem alteração no banco de dados real. 2. Fase de Validação: T i faz um teste de validação para determinar se variáveis locais podem ser escritas sem violar a serialização. 3. Fase de Escrita: Se T i for válida, as gravações são aplicadas no BD, caso contrário, T i é revertida. As três fases podem ser intercaladas com outras transações concorrentes, mas em cada transação devem ocorrer nessa ordem. Esse protocolo também é chamado de controle de concorrência otimista, pois baseia-se no fato de que não haverá problemas na execução da transação.

48 Protocolos baseados em Validação Cada transação T i tem 3 timestamps: Start(T i ): início da transação; Validation(T i ): momento em que T i entra na fase de validação; Finish(T i ): momento em que T i conclui fase de escrita. A ordem de serialização é dada pelo momento de validação. TS(T i ) = Validation(T i ). Este protocolo aumenta o grau de concorrência se a probabilidade de conflitos for baixa. Isto se dá porque a ordem de serialização não é pré-definida e, relativamente, poucas transações terão que ser desfeitas.

49 Protocolos baseados em Validação Se para todas as T i com TS (T i ) < TS (T j ) alguma das condições abaixo se mantém: 1. Finish(T i ) < Start(T j ) 2. Start(T j ) < Finish(T i ) < Validation(T j ) e o conjunto de itens de dados escrito por T i não possui interseção com os dados lidos por T j. então a validação termina com sucesso e T j pode ser efetivada. Caso contrário, a validação falha e T j é abortada. Justificativa: Ou a 1ª condição é satisfeita e não há execução concorrente, ou a 2ª condição é satisfeita e: as escritas de T j não afetam as leituras de T i pois ocorrem após T i terminar suas leituras. as escritas de T i não afetam as leituras de T j já que T j não lê nenhum item escrito por T i.

50 Esquema de Multiversão Os esquemas de controle de concorrência por bloqueio ou por timestamp garantem a serialização atrasando a operação ou abortando a transação responsável por tal operação. Essas dificuldades podem ser evitadas se o sistema providenciar cópias de cada item de dado. Em um sistema de banco de dados multiversão, cada operação write(q) cria uma nova versão de Q. Quando é emitida uma operação read(q), o sistema seleciona uma das versões de Q para ser lida. O esquema de controle de concorrência precisa garantir que a seleção da versão lida seja tal que assegure a serialização. Por razões de desempenho, uma transação precisa determinar de forma fácil e rápida qual a versão do item de dados que deverá ser utilizada.

51 Multiversão com Ordenação por Timestamp A cada transação T i do sistema é associado um timestamp único e estático, denotado por TS(T i ) (associado antes do início da execução da transação). Para cada item de dado Q, uma seqüência de versões <Q 1, Q 2,..., Q n > é associada. Cada versão Q k contém três campos: Content: é o valor da versão Q k ; W-timestamp(Q k ): é o timestamp da transação que criou a versão Q k. R-timestamp(Q k ): é o timestamp mais alto de alguma transação que tenha lido a versão Q k com sucesso.

52 Multiversão com Ordenação por Timestamp Uma transação T i cria uma nova versão Q k do item de dado Q emitindo uma operação write(q). O campo conteúdo da versão mantém o valor escrito por T i. O W-timestamp e o R-timestamp são inicializados por TS(T i ). O valor de R-timestamp é atualizado sempre que uma transação T j lê o conteúdo de Q k e R-timestamp(Q k ) <TS(T j ).

53 Esquema: Suponha que uma transação T i emita uma operação read(q) ou write(q). Seja Q k a versão de Q cujo timestamp de escrita é o mais alto timestamp, menor ou igual a TS(T i ). Se a transação T i emitir um read(q), então o valor recebido será o conteúdo da versão Q k. Se a transação T i emitir um write(q) e Ts(T i ) < R-timestamp(Q k ), então a transação T i será desfeita. De outro modo, se TS(T i ) = W-timestamp(Q k ) o conteúdo de Q k é sobreposto; caso contrário, outra versão de Q é criada.

54 Esquema: As versões que não forem mais necessárias serão removidas conforme a regra seguinte: Suponha que haja duas versões, Q k e Q j de um item k j de dados Q e que ambas as versões tenham o W- timestamp menor que o timestamp da última transação do sistema. Então, a mais antiga entre as versões Q k e Q j não será usada novamente e pode ser eliminada.

55 Vantagens e Desvantagens Vantagem: Garante que uma solicitação de leitura nunca falhe e nunca espere. Desvantagem: A leitura de um item de dados exige também a atualização do campo R-timestamp, resultando em dois acessos ao disco ao invés de apenas um. Os conflitos entre as transações são resolvidos por rollback, em vez da imposição do tempo de espera.

56 Multiversão com Bloqueio em Duas Fases Tenta combinar as vantagens do controle de concorrência multiversão com as vantagens do bloqueio em duas fases. Neste esquema: As transações de atualização executam um bloqueio em duas fases rigoroso (mantêm todos os bloqueios até o final da transação). Cada item de dado possui um único timestamp, baseado em um contador, chamado ts-counter, o qual é incrementado durante o processo.

57 Esquema: Marca-se os timestamps das transações somente de leitura por meio do valor corrente do contador (lendo o valor de ts-counter antes de começar a execução). Para leitura, esse esquema segue o protocolo de multiversão ordenada por timestamp. Quando uma transação T i (somente leitura) emite um read(q), o valor recebido é o conteúdo da versão cujo timestamp é o inferior a TS(T i ) mais próximo. Quando uma transação de atualização lê um item de dados, ela impõe um bloqueio compartilhado ao item, e lê a sua última versão. Quando uma transação de atualização deseja escrever um item de dados, ela primeiro consegue o bloqueio exclusivo sobre esse item, e então, cria uma nova versão do item de dado. A escrita é realizada a partir da nova versão e o timestamp da nova versão recebe como valor inicial, que é maior que qualquer outro timestamp possível.

58 Esquema: Quando uma transação de atualização T i completa suas ações, ela realiza o processo de efetivação da seguinte forma: T i adiciona 1 ao valor de ts-counter e transfere esse valor aos timestamps de todas as versões que criou; Ti adiciona 1 ao valor de ts-counter. Somente uma transação de atualização por vez pode realizar o processo de efetivação. Como conseqüência, as transações somente de leitura que começarem depois de T i incrementar o ts-counter acessarão o valor atualizado por T i, enquanto aquelas que começarem antes do incremento de ts_counter, feito por T i, verão o valor anterior à atualização de T i. Neste caso, as transações somente de leitura jamais precisarão esperar por bloqueios. As versões são eliminadas de modo similar ao esquema de multiversão com ordenação por timestamp.

59 Manuseio de Deadlock Um sistema está em estado de deadlock se há um conjunto de transações, tal que toda transação deste conjunto está esperando outra transação também contida nele. Seja o conjunto {T 0, T 1,..., T n }. T 0 está esperando um item de dados mantido por T 1, T 1 está esperando por um item de dados mantido por T 2,..., T n-1 está esperando um item de dado mantido por T n e T n está esperando um item de dados mantido por T 0. Existem dois métodos principais para tratamento de deadlock: Prevenção de deadlock: garante que o sistema nunca entrará em tal situação. Mais utilizado quando há alta probabilidade do sistema entrar em deadlock. Detecção e recuperação de deadlock: permite que o sistema entre em um estado de deadlock, para então recuperá-lo.

60 Prevenção Abordagem 1: Obriga que cada transação bloqueie todos os itens de dados antes de sua execução. Ou todos os itens de dados são bloqueados de uma vez ou nenhum o será. Desvantagens: Dificuldade em prever, antes da transação começar, quais itens de dados precisarão ser bloqueados (seria necessário o uso de um esquema de informação nas transações); A concorrência é bastante reduzida.

61 Prevenção Abordagem 2: Caracterizada pela preempção e rollback de transações. Na preempção, quando uma transação T 2 solicita um bloqueio que está sendo mantido pela transação T 1, o bloqueio concedido a T 1 pode ser revisto por meio do roolback de T 1, e concedido a T 2. Para controlar esta preempção, considera-se um único timestamp para cada transação. Eles são usados para decidir se a transação pode esperar ou será revertida. O bloqueio continua sendo usado para controlar o concorrência. Se uma transação for revertida, ela manterá seu timestamp antigo quando for reiniciada.

62 Esquemas Esperar-morrer (wait-die): Tem por base uma técnica de não-preempção. Quando uma transação T i solicita um item de dados mantido por T j, T i pode esperar somente se possuir um timestamp menor do que T j (isto é, T i é mais antiga que T j ). Caso contrário, T i será revertida (morta). Por exemplo, suponha que as transações T 2, T 3 e T 4 tenham timestamps 5, 10 e 15, respectivamente. Se T 4 solicita um item de dados mantido por T 3, então, T 4 será desfeita.

63 Esquemas Ferir-esperar (wound-wait): Tem por base a técnica da preempção e é uma contrapartida ao esquema esperar-morrer. Quando uma transação T i solicita um item de dado mantido por T j, T i poderá esperar somente se possuir um timestamp maior que T j (ou seja, T i é mais nova que T j ). Caso contrário, T j será desfeita (T j é ferida por T i ). Retornando ao exemplo anterior. Se T 2 solicita um item de dados mantido por T 3, então o item de dados será liberado de T 3, e T 3 será desfeita. Se T 4 solicitar um item de dados mantido por T 3, então T 4 esperará.

64 Prevenção Ambos os esquemas da segunda abordagem evitam inanição. Diferenças entre os dois esquemas da segunda abordagem: No esquema esperar-morrer, a transação mais antiga precisará esperar até que a mais nova libere seus itens de dados. Assim, quanto mais antiga a transação, maior a possibilidade de esperar. Em contraste, no esquema ferir-esperar, a transação mais antiga nunca espera a mais nova. No esquema esperar-morrer, se uma transação T i morre e é desfeita porque solicitou um item de dados bloqueado por uma transação T j, então T i pode reemitir a mesma seqüência de solicitações quando for reiniciada. Se os itens de dados ainda estiverem bloqueados por T j, então T i morrerá novamente. Assim, T i poderá morrer diversas vezes antes de conseguir o item de dados necessário. No esquema feriresperar, a transação T i será ferida e revertida porque T j solicitou um item de dados bloqueado por ela. Quando T i reinicia e solicita o item de dados bloqueado por T j, T i esperará. Com isso, deve haver menos reversões.

65 Timeout Uma transação que tenha solicitado um bloqueio espera por ele por um determinado período de tempo. Se o bloqueio não for conseguido dentro desse intervalo, é dito que o tempo da transação está esgotado. Assim ela mesma se reverte e se reinicia. Se de fato estiver ocorrendo um deadlock, uma ou mais transações nele envolvidas terão seu(s) tempo(s) esgotado(s) e se reverterá/reverterão, permitindo a continuação de outras. É fácil de ser implementado, trabalha bem se as transações forem curtas, e se longa esperas forem freqüentes em função de deadlocks. É difícil mensurar o tempo de espera. Não está livre da presença de inanição.

66 Detecção de Deadlock e Recuperação Um mecanismo que examina o estado do sistema é acionado periodicamente para determinar se um deadlock está ocorrendo. Se estiver, então precisa tentar recuperá-lo. Para isso ele precisa: Manter informações sobre alocação corrente dos itens de dados para transações, assim como qualquer solicitação de itens de dados pendentes; Proporcionar um algoritmo que use essas informações para determinar se o sistema entrou em estado de deadlock; Recuperar-se de um deadlock quando o algoritmo de detecção determinar que ele ocorreu.

67 Detecção Seja o grafo G = (V,E), em que V é um conjunto de vértices e E um conjunto de arestas. O conjunto de vértices consiste em todas as transações do sistema. Cada elemento do conjunto E de arestas é um par ordenado T i T j. Se T i T k está em E, então isto implica que a transação T i está esperando que a transação T k libere o item de dado que ela precisa. A inserção e remoção de arestas no grafo são feitas de acordo com a solicitação de um item bloqueado ou da liberação de um item bloqueado. Há deadlock no sistema se, e somente se, o grafo contiver um ciclo. Cada transação envolvida no ciclo está envolvida no deadlock.

68 Exemplo: A transação T 1 está esperando as transações T 2 e T 3. A transação T 3 está esperando a transação T 2. A transação T 2 está esperando a transação T 4. T2 T4 T1 T3

69 Exemplo: Suponha agora que T 4 esteja solicitando um item bloqueado por T 3. T2 T4 T1 T3

70 Detecção Quando evocar o algoritmo de detecção? Depende da freqüência de ocorrência de deadlocks. Depende de quantas transações serão afetadas por um deadlock. Se os deadlocks ocorrem com freqüência, então o algoritmo será evocado com mais freqüência. Na pior das hipóteses, a chamada ao algoritmo de detecção se dará sempre que uma solicitação de alocação não puder ser imediatamente atendida.

71 Recuperação Reverter uma ou mais transações para quebrar o deadlock. Devem ser tomadas três ações: Selecionar uma vítima (ou vítimas) de acordo como mínimo custo: A quanto tempo a transação está em processamento e quanto tempo será ainda necessário para que a tarefa seja completada; Quantos itens de dados a transação usou; Quantos itens ainda a transação usará até que se complete; Quantas transações serão envolvidas no rollback. Rollback: Determinar até que ponto a transação deve ser revertida: Reverter totalmente; O suficiente para quebrar o deadlock (exige informações adicionais). Inanição: Deve-se garantir que uma transação seja escolhida vítima somente um número finito e pequeno de vezes.

72 Operações de Inserção e Remoção Operações adicionais: delete(q): remove o item de dado Q do banco de dados; insert(q): insere um novo item de dado Q em um banco de dados e lhe designa um valor inicial. Uma transação T i que queira operar um read(q) depois da remoção de Q resulta em erro lógico em T i. Um transação T i que pretenda realizar uma operação de read(q) antes da inserção de Q, também resultará em um erro lógico em Ti. Também será um erro lógico tentar remover um item de dado inexistente.

73 Remoção Quando uma operação de remoção entra em conflito com outras? Se uma transação quiser ler o item que a outra removeu; Se uma transação quiser escrever o que a outra removeu; Se uma transação quiser remover o que a outra removeu; Se uma transação quer remover e outra inserir: a remoção só pode ser feita se a inserção já ocorreu ou se o dado já existia e, a inserção só deve ocorrer se o dado não existe. Se o bloqueio em duas fases for usado, é preciso um bloqueio exclusivo sobre o item de dados antes que ele possa ser removido. Para o protocolo timestamp é preciso um controle similar ao usado para o write.

74 Inserção A inserção entra em conflito com a remoção, como já visto. Nenhum read ou write pode ser realizado sobre um item de dados antes que ele exista. A inserção é tratada de modo similar à operação write.

75 Fontes Bibliográficas: Sistemas de Banco de Dados (Cap. 16). Abraham Silberchatz, Henry F. Korth, S Sudarshan. 5ª Ed. Elsevier, Sistemas de Banco de Dados (Cap. 18). Ramez Elmasri e Sham Navathe. 4ª Ed. Pearson, Leitura Complementar: Controle de Concorrência e Distribuição de Dados: A teoria clássica, suas limitações e extensões modernas. João Eduardo Ferreira e Marcelo Finger. São Paulo: Escola Brasileira de Computação, 2001.

Gerenciamento de Transações em Banco de Dados

Gerenciamento de Transações em Banco de Dados Gerenciamento de Transações em Banco de Dados Daniela Barreiro Claro MAT A60 Aula 13 Introdução à Transação 2 Transação É uma coleção de operações que formam uma única unidade lógica As transações acessam

Leia mais

BD II (SI 587) Controle de Concorrência. Josenildo Silva.

BD II (SI 587) Controle de Concorrência. Josenildo Silva. BD II (SI 587) Controle de Concorrência Josenildo Silva jcsilva@ifma.edu.br Nota Estes slides são baseados nos slides disponibilizados pelos autores ELMASRI e NAVATHE, para o livro Sistemas de Banco de

Leia mais

Avisos. Processamento de Transações Controle de Concorrência. Roteiro da aula. Tipos de bloqueio: Binários. Protocolos baseados em bloqueio

Avisos. Processamento de Transações Controle de Concorrência. Roteiro da aula. Tipos de bloqueio: Binários. Protocolos baseados em bloqueio Ciência da Computação GBC043 Sistemas de Banco de Dados Processamento de Transações Controle de Concorrência Avisos Lista de exercícios adicionais na página da disciplina Profa. Maria Camila Nardini Barioni

Leia mais

Controle de Concorrência

Controle de Concorrência Banco de Dados Fernando Fonseca Ana Carolina Definição Concorrência é a propriedade de uma transação poder ser executada em paralelo com outras transações Justificativa de uso Com a execução de várias

Leia mais

Técnicas de Controle de Concorrência. Laboratório de Bancos de Dados

Técnicas de Controle de Concorrência. Laboratório de Bancos de Dados Técnicas de Controle de Concorrência Laboratório de Bancos de Dados João Eduardo Ferreira e José Alcazar Elmasri,, R.; Navathe,, S. B. Sistemas de Banco de Dados, 4ed. Pearson Addison Wesley,, 2005 (Caps.(

Leia mais

Técnicas de Controle de Concorrência

Técnicas de Controle de Concorrência Técnicas de Controle de Concorrência Principais Técnicas bloqueio (locking) timestamp Técnicas Baseadas em Bloqueio Técnicas mais utilizadas pelos SGBDs Princípio de funcionamento controle de operações

Leia mais

Controle de Concorrência

Controle de Concorrência Controle de Concorrência Protocolos de Bloqueio Protocolo com base em Timestamps Protocolos Multi-versão Inserção e Remoção de Dados Controle de Concorrência Controle de concorrência é usado para garantir

Leia mais

Roteiro. Noções de Controle de Concorrência. BCC321 - Banco de Dados I. Ementa. Finalidade do Controle de Concorrência.

Roteiro. Noções de Controle de Concorrência. BCC321 - Banco de Dados I. Ementa. Finalidade do Controle de Concorrência. Roteiro Noções de Controle de Concorrência Luiz Henrique de Campos Merschmann Departamento de Computação Universidade Federal de Ouro Preto luizhenrique@iceb.ufop.br www.decom.ufop.br/luiz Posicionamento

Leia mais

Técnicas de Controle de Concorrência

Técnicas de Controle de Concorrência Técnicas de Controle de Concorrência Pessimistas supõem que sempre ocorre interferência entre transações e garantem a serializabilidade enquanto a transação está ativa técnicas bloqueio (locking) timestamp

Leia mais

Contato. professorluisleite.wordpress.com

Contato. professorluisleite.wordpress.com BD II Controle de Concorrência Professor: Luis Felipe Leite Contato luisleite@recife.ifpe.edu.br professorluisleite.wordpress.com Ciclo de três aulas Processamento de transações. Controle de Concorrência.

Leia mais

Sistemas Operacionais Aula 09: Deadlocks / Impasses. Ezequiel R. Zorzal

Sistemas Operacionais Aula 09: Deadlocks / Impasses. Ezequiel R. Zorzal Sistemas Operacionais Aula 09: Deadlocks / Impasses Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Objetivos Desenvolver uma descrição de deadlocks, que impedem que grupos de processos simultâneos

Leia mais

Scheduler Baseado em Timestamp

Scheduler Baseado em Timestamp Scheduler Baseado em Timestamp Técnica na qual toda transação Tx possui uma marca timestamp (TS(Tx)) Princípio de funcionamento (TS-Básico) no acesso a um item de dado D por operações conflitantes, a ordem

Leia mais

Sistemas de Gerência de Bancos de Dados

Sistemas de Gerência de Bancos de Dados Sistemas de Gerência de Bancos de Dados 5 - Controle de Concorrência 5.2 - Métodos baseados em Bloqueio 1 Protocolo simples de bloqueio: Definição: transação bloqueia objeto, na modalidade correta, antes

Leia mais

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 21. Escola Politécnica da Universidade de São Paulo

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 21. Escola Politécnica da Universidade de São Paulo PCS3413 Engenharia de So-ware e Banco de Dados Aula 21 Escola Politécnica da Universidade de São Paulo 1 TRANSAÇÃO E CONTROLE DE CONCORRÊNCIA Transação unidade de execução de programa que acessa e, possivelmente,

Leia mais

Processamento de Transações

Processamento de Transações Processamento de Transações Processamento de Transações ) Transações Atômicas: Unidades lógicas de processamento sobre um banco de dados. ) Controle de Concorrência: Garantia de que múltiplas transações

Leia mais

Processamento de Transações

Processamento de Transações Processamento de Transações Processamento de Transações Transações Atômicas: Unidades lógicas de processamento sobre um banco de dados. Controle de Concorrência: Garantia de que múltiplas transações ativadas

Leia mais

revisão Controle de Concorrência com Locks Bancos de Dados I 2015/02

revisão Controle de Concorrência com Locks Bancos de Dados I 2015/02 Bancos de Dados I 2015/02 revisão Controle de Concorrência com Locks Transações em SQL Prof. Altigran Soares da Silva Atomico=transaction manager Consistencia=controle concorrencia/commit Isolamento=controle

Leia mais

Bases de Dados 2013/2014 Controlo de Concorrência

Bases de Dados 2013/2014 Controlo de Concorrência Bases de Dados 2013/2014 Controlo de Concorrência Helena Galhardas Sumário Serialização e Protocolos de Locking! 2PL Two Phase Locking! Tratamento de Deadlocks! Níveis de Isolamento em SQL! Aquisição Automática

Leia mais

Processamento de Transações II

Processamento de Transações II UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA Banco de Dados II Processamento de Transações II Carlos Eduardo Portela Serra de Castro * Processamento de Transações II Sumário Definindo Plano de Execução Baseado

Leia mais

Capítulo 7: Impasse (Deadlocks( Deadlocks)

Capítulo 7: Impasse (Deadlocks( Deadlocks) Capítulo 7: Impasse (Deadlocks( Deadlocks) Capítulo 7: Impasse (Deadlocks( Deadlocks) O Problema do Impasse Modelo de Sistema Caracterização de Impasse Métodos para Manipular Impasses Prevenção de Impasse

Leia mais

Transacções concorrentes exemplo. B := B 50 write(b) read(a) A := A + 50 write(a)

Transacções concorrentes exemplo. B := B 50 write(b) read(a) A := A + 50 write(a) Bases de Dados Concorrência Transacções concorrentes exemplo T 1 : B := B 50 write(b) A := A + 50 write(a) T 2 : display(a+b) T 2 pode dar um resultado inconsistente quando executada em paralelo com T

Leia mais

Processamento de Transações

Processamento de Transações Arquitetura de Banco de Dados Processamento de Transações Carolina Nogueira Marcelo Eduardo Cardoso Rodrigo Dlugokenski Vítor De Araújo Bancos de dados Single-users versus Multiusers classificação baseada

Leia mais

se a transação falhar entre os 3 passos 4 6, os passos 1 3 ficam sem efeito 4 read(b) Consistência

se a transação falhar entre os 3 passos 4 6, os passos 1 3 ficam sem efeito 4 read(b) Consistência Bases de Dados Transacções Propriedades ACID 1 T Atomicidade i : read(a) 2 A := A 50 se a transação falhar entre os 3 write(a) passos 4 6, os passos 1 3 ficam sem efeito 4 read(b) Consistência 5 B := B

Leia mais

Revisão e Introdução 23/05/12. Controle Distribuído da Concorrência. Revisão de Conceitos. Revisão de Conceitos. Transação Operação

Revisão e Introdução 23/05/12. Controle Distribuído da Concorrência. Revisão de Conceitos. Revisão de Conceitos. Transação Operação Controle Distribuído da Concorrência Controle Distribuído da Concorrência REVISÃO E INTRODUÇÃO SERIALIZABILIDADE ALGORITMOS LOCKING-BASED Aluno: Walter Travassos Sarinho wts@cin.ufpe.br ALGORITMOS TIMESTAMP-BASED

Leia mais

Aula 03. Evandro Deliberal

Aula 03. Evandro Deliberal Aula 03 Evandro Deliberal evandro@deljoe.com.br https://www.linkedin.com/in/evandrodeliberal Concorrência Método Sincronização Problemas: Perda de consistência Acesso a dados inconsistentes Perda de atualizações

Leia mais

Técnicas de Controle de Concorrência

Técnicas de Controle de Concorrência Técnicas de Controle de Concorrência Pessimistas supõem que sempre ocorre interferência entre transações e garantem a serializabilidade enquanto a transação está ativa técnicas bloqueio (locking) timestamp

Leia mais

Deadlock. Um problema de concorrência. Parte dos slides: Sistemas Operacionais Modernos 2ª Edição, Pearson Education

Deadlock. Um problema de concorrência. Parte dos slides: Sistemas Operacionais Modernos 2ª Edição, Pearson Education Deadlock Um problema de concorrência Parte dos slides: Sistemas Operacionais Modernos 2ª Edição, Pearson Education 1 Interação entre Processos Processos que executam em paralelo podem trocar informações

Leia mais

Controle de Transação

Controle de Transação Curso: Ciência da Computação Disciplina: Banco de Dados Campus Lages Controle de Transação Prof. Edjandir C. Costa edjandir.costa@ifsc.edu.br Agenda Conceitos de transação e sistema Propriedades desejáveis

Leia mais

Introdução. Processamento de Transações. Introdução. Introdução. Transações. Transações. Transação

Introdução. Processamento de Transações. Introdução. Introdução. Transações. Transações. Transação Pós-graduação em Ciência da Computação CCM-202 Sistemas de Banco de Dados Processamento de Transações Profa. Maria Camila Nardini Barioni camila.barioni@ufabc.edu.br Bloco B - sala 937 Introdução... SGBDs

Leia mais

Banco de Dados I 6 Transações e Controle de Concorrência

Banco de Dados I 6 Transações e Controle de Concorrência Banco de Dados I 6 Transações e Controle de Concorrência Grinaldo Lopes de Oliveira (grinaldo( grinaldo@gmail.com) Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas * Material com créditos

Leia mais

se a transacção falhar entre os passos 4 6, os passos 1 3 ficam sem efeito

se a transacção falhar entre os passos 4 6, os passos 1 3 ficam sem efeito Bases de Dados Transacções Propriedades ACID Atomicidade se a transacção falhar entre os passos 4 6, os passos 1 3 ficam sem efeito Consistência a soma A+B tem de ser igual antes e depois Isolamento nenhuma

Leia mais

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Sincronização e Comunicação entre Processos. Adão de Melo Neto Sincronização e Comunicação entre Processos Adão de Melo Neto 1 INTRODUÇÃO Em um sistema multitarefa os processos alternam sua execução segundo critérios de escalonamento estabelecidos pelo sistema operacional.

Leia mais

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar - Aula 3-1. DEADLOCK Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez. Exemplo: CD-ROM, Driver de Fita Dat, etc. Ter dois processos simultaneamente gravando

Leia mais

Capítulo 3 Deadlocks - Impasses

Capítulo 3 Deadlocks - Impasses Capítulo 3 Deadlocks - Impasses 3.1. Recurso 3.2. Introdução aos deadlocks 3.3. Algoritmo do avestruz 3.4. Detecção e recuperação de deadlocks 3.5. Evitando deadlocks 3.6. Prevenção de deadlocks 3.7. Outras

Leia mais

Introdução. Processamento de Transações. Introdução. Introdução. Transações. Transações

Introdução. Processamento de Transações. Introdução. Introdução. Transações. Transações Ciência da Computação GBC043 Sistemas de Banco de Dados Processamento de Transações Profa. Maria Camila Nardini Barioni camila.barioni@ufu.br Bloco B - sala 1B137 Introdução... SGBDs são em geral multi-usuários

Leia mais

Sistemas de Gestão de Bases de Dados e-fólio B. Resolução e Critérios de Correção

Sistemas de Gestão de Bases de Dados e-fólio B. Resolução e Critérios de Correção 21103 - Sistemas de Gestão de Bases de Dados 2015-2016 e-fólio B Resolução e Critérios de Correção PARA A RESOLUÇÃO DO E-FÓLIO, ACONSELHA-SE QUE LEIA ATENTAMENTE O SEGUINTE: 1) O e-fólio é constituído

Leia mais

Sistemas de Gerência de Bancos de Dados. 5 - Controle de Concorrência Tópicos Adicionais

Sistemas de Gerência de Bancos de Dados. 5 - Controle de Concorrência Tópicos Adicionais Sistemas de Gerência de Bancos de Dados 5 - Controle de Concorrência 5.4 - Tópicos Adicionais 1 Problema dos "Fantasmas" "Hot Spots" Bloqueio em Árvores-B+ Tópicos 2 Problema dos "Fantasmas" Ações elementares

Leia mais

Banco de Dados. Controle de Concorrência e Recuperação de Transação. Prof. João Eduardo Ferreira Prof. Osvaldo Kotaro Takai

Banco de Dados. Controle de Concorrência e Recuperação de Transação. Prof. João Eduardo Ferreira Prof. Osvaldo Kotaro Takai Banco de Dados Controle de Concorrência e Recuperação de Transação Última atualização: 20 de janeiro de 2006 Prof. João Eduardo Ferreira Prof. Osvaldo Kotaro Takai Tópicos Modelo Transacional Clássico

Leia mais

TRANSAÇÕES MAPAS MENTAIS

TRANSAÇÕES MAPAS MENTAIS TRANSAÇÕES MAPAS MENTAIS RESUMINDO TRANSAÇÕES: ESTADOS E OPERAÇÕES CONTROLE DE CONCORRÊNCIA Porque o controle de concorrência é necessário? Evitar problemas: Atualização perdida Atualização temporária

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Deadlocks Referência Sistemas operacionais modernos Andrew S. TANENBAUM Prentice-Hall, 1995 Seção 11.5 pág. 340-344 2 Conteúdo Detecção de deadlock distribuído Detecção centralizada

Leia mais

Controle de Transações. Banco de Dados André Luiz do Vale Soares

Controle de Transações. Banco de Dados André Luiz do Vale Soares Controle de Transações Banco de Dados André Luiz do Vale Soares 1 Transações de Banco de Dados O que são transações em BDs? São um conjunto de instruções SQL, tratadas como uma UNIDADE, ou seja, todas

Leia mais

Banco de Dados I. Aula 18 - Prof. Bruno Moreno 22/11/2011

Banco de Dados I. Aula 18 - Prof. Bruno Moreno 22/11/2011 Banco de Dados I Aula 18 - Prof. Bruno Moreno 22/11/2011 Plano de Aula Introdução SPT Sistemas monousuários e multiusuários Sistemas multiprogramados Transação - Definição Concorrência de Transações Log

Leia mais

Técnicas de Recuperação em Banco de Dados

Técnicas de Recuperação em Banco de Dados Técnicas de Recuperação em Banco de Dados Daniela Barreiro Claro MAT A60 Aula 14 Recuperação em Banco de Dados 2 Falhas podem ocorrer em qualquer Sistema Catastroficas e não-catastroficas SGBD deve garantir

Leia mais

Sistemas Operacionais. DeadLock. Edeyson Andrade Gomes.

Sistemas Operacionais. DeadLock. Edeyson Andrade Gomes. Sistemas Operacionais DeadLock Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula DeadLock Metas Algoritmos 2 DeadLock Um estado de deadlock ocorre quando dois ou mais processos estão esperando por

Leia mais

UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA. Banco de Dados II. Recuperação. Carlos Eduardo Portela Serra de Castro

UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA. Banco de Dados II. Recuperação. Carlos Eduardo Portela Serra de Castro UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA Banco de Dados II Recuperação Carlos Eduardo Portela Serra de Castro * Sumário 1 Conceitos 2 Atualização adiada 3 Atualização imediata 4 Paginação shadow 5 Aries

Leia mais

BD II (SI 587) Técnicas de Recuperação. Josenildo Silva.

BD II (SI 587) Técnicas de Recuperação. Josenildo Silva. BD II (SI 587) Técnicas de Recuperação Josenildo Silva jcsilva@ifma.edu.br Nota Estes slides são baseados nos slides disponibilizados pelos autores ELMASRI e NAVATHE, para o livro Sistemas de Banco de

Leia mais

Sistemas de Informação e Bases de Dados 2012/2013. Transações. Alberto Sardinha

Sistemas de Informação e Bases de Dados 2012/2013. Transações. Alberto Sardinha Sistemas de Informação e Bases de Dados 2012/2013 Transações Alberto Sardinha Sumário! Conceito de Transação! Propriedades ACID! Transações em SQL! Referências Raghu Ramakrishnan, Database Management Systems,

Leia mais

Processamento de Transações. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Processamento de Transações. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri Processamento de Transações Banco de Dados Introdução Ambiente multiusuário vários usuários utilizam o mesmo sistema ao mesmo tempo múltiplos programas (transações) compartilham a mesma CPU Forma de execução

Leia mais

Sumário. Recuperação de Falhas

Sumário. Recuperação de Falhas Sumário 1 Introdução ao Processamento de Consultas 2 Otimização de Consultas 3 Plano de Execução de Consultas 4 Introdução a Transações 5 Recuperação de Falhas 6 Controle de Concorrência 7 Fundamentos

Leia mais

e c d o o r B s s n i : l e F s

e c d o o r B s s n i : l e F s e d o t n e m a s s e c o r P I I D B s e õ ç a s n a Tr Leite pe i l e F s i Lu : r o s s e Prof Contato luisleite@recife.ifpe.edu.br Professorluisleite.wordpress.com Ciclo de três aulas Processamento

Leia mais

Roteiro. Noções de Recuperação de Falhas. BCC321 - Banco de Dados I. Ementa. Posicionamento

Roteiro. Noções de Recuperação de Falhas. BCC321 - Banco de Dados I. Ementa. Posicionamento Roteiro Noções de Recuperação de Falhas Posicionamento Luiz Henrique de Campos Merschmann Departamento de Computação Universidade Federal de Ouro Preto luizhenrique@iceb.ufop.br www.decom.ufop.br/luiz

Leia mais

Sincronização e Concorrência

Sincronização e Concorrência Tópicos da Aula Sincronização e Concorrência Sincronização sincronização interna sincronização externa sincronização de relógio métodos de sincronização Cristian Berkeley tempo lógico Controle de Concorrência

Leia mais

Capítulo 7: Deadlocks. Operating System Concepts 8th Edition

Capítulo 7: Deadlocks. Operating System Concepts 8th Edition Capítulo 7: Deadlocks Sobre a apresentação (About the slides) Os slides e figuras dessa apresentação foram criados por Silberschatz, Galvin e Gagne em 2009. Esse apresentação foi modificada por Cristiano

Leia mais

4 Modelo de Dados do Controle de Versões para Edição Cooperativa de Vídeo

4 Modelo de Dados do Controle de Versões para Edição Cooperativa de Vídeo 4 Modelo de Dados do Controle de Versões para Edição Cooperativa de Vídeo Neste Capítulo 4 são apresentados a estrutura de dados utilizada nesta dissertação para o controle de versões (árvore de versionamento)

Leia mais

BD II (SI 587) Transações em Banco de Dados. Prof. Josenildo Silva

BD II (SI 587) Transações em Banco de Dados. Prof. Josenildo Silva BD II (SI 587) Transações em Banco de Dados Prof. Josenildo Silva jcsilva@ifma.edu.br Nota Estes slides são adaptados de Database System Concepts, 6th Ed. Silberschatz, Korth and Sudarshan distribuídos

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Transações atômicas Conteúdo O modelo transacional Armazenamento estável Primitivas transacionais Propriedades das transações Transações aninhadas Implementação Área de trabalho privada

Leia mais

Administração e Optimização de BDs

Administração e Optimização de BDs Departamento de Engenharia Informática 2010/2011 Administração e Optimização de BDs Mini-Projecto 3 A entregar a 7 de Maio de 2011 2º semestre A resolução deve ser claramente identificada com o número

Leia mais

Processamento de Transações. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Processamento de Transações. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri Processamento de Transações Laboratório de Bases de Dados Introdução Ambiente multiusuário vários usuários utilizam o mesmo sistema ao mesmo tempo múltiplos programas (transações) compartilham a mesma

Leia mais

Sistemas Distribuídos Transações

Sistemas Distribuídos Transações Sistemas Distribuídos Transações Vinícius Fernandes Soares Mota 1 2 Transações Transação: Unidade lógica de trabalho abrange um conjunto de operações de manipulação de dados que executam uma única tarefa

Leia mais

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Sistemas Distribuídos. Ricardo Ribeiro dos Santos Sistemas Distribuídos Ricardo Ribeiro dos Santos ricrs@ec.ucdb.br Curso de Engenharia de Computação UCDB Setembro/2003 Tópicos Sincronização em Sistemas Distribuídos Exclusão Mútua Transações Distribuídas

Leia mais

Capítulo 3 Deadlocks - Impasses

Capítulo 3 Deadlocks - Impasses Capítulo 3 Deadlocks - Impasses 3.1. Recurso 3.2. Introdução aos deadlocks 3.3. Algoritmo do avestruz 3.4. Detecção e recuperação de deadlocks 3.5. Evitando deadlocks 3.6. Prevenção de deadlocks Pearson

Leia mais

Bases de Dados 2013/2014 Transações. Helena Galhardas. Sumário!

Bases de Dados 2013/2014 Transações. Helena Galhardas. Sumário! Bases de Dados 2013/2014 Transações Helena Galhardas Sumário! Conceito de Transação! Propriedades ACID! Conflitos e Serializabilidade! Recuperabilidade! Protocolos de controlo de concorrência! Transações

Leia mais

ANÁLISE E PROJETO DE BANCO DE DADOS

ANÁLISE E PROJETO DE BANCO DE DADOS ANÁLISE E PROJETO DE BANCO DE DADOS PROCESSAMENTO DE TRANSAÇÕES FELIPE G. TORRES INTRODUÇÃO AO PROCESSAMENTO DE TRANSAÇÕES Transação pode ser conceituada como unidades lógicas de processamento de banco

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Programação Concorrente Impasses Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Princípios de Deadlock Técnicas de solução do problema Prevenir a ocorrência

Leia mais

Administração e Optimização de BDs

Administração e Optimização de BDs Departamento de Engenharia Informática 2011/2012 Administração e Optimização de BDs Mini Projecto 3 A entregar a 4 de Maio de 2012 2º semestre A resolução deve ser claramente identificada com o número

Leia mais

Deadlocks (impasses)

Deadlocks (impasses) Deadlocks (impasses) Exemplos de recursos impressoras, drives, tabelas, memória, tempo de processador Sequência de eventos necessária para usar um recurso Solicitar recurso Usar recurso Liberar recurso

Leia mais

Programação Concorrente. 2º Semestre 2010

Programação Concorrente. 2º Semestre 2010 Programação Concorrente 2º Semestre 2 Tópicos de Hoje Assunto: Deadlocks Livro Texto Capítulo 4; Conceitos Iniciais; Tipos de Recursos; Condições necessárias para ocorrência de deadlock; Um sistemas livre

Leia mais

SSC0640 Sistemas Operacionais I

SSC0640 Sistemas Operacionais I SSC64 Sistemas Operacionais I 2ª Aula Deadlocks Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Slides adaptados de Marcos José Santana / Regina H. C. Santana / Luciana A. F. Martimiano baseados no livro

Leia mais

Sumário. Introdução a Transações

Sumário. Introdução a Transações Sumário 1 Introdução ao Processamento de Consultas 2 Otimização de Consultas 3 Plano de Execução de Consultas 4 Introdução a Transações 5 Recuperação de Falhas 6 Controle de Concorrência 7 Fundamentos

Leia mais

Inversão de prioridades

Inversão de prioridades Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2017 1 / 46 Sumário 1 Dependência 2 Dependência Deadlocks 3 Classicação dos recursos 2 / 46 1 Dependência

Leia mais

Capítulo 3. Deadlocks. Recursos

Capítulo 3. Deadlocks. Recursos Capítulo 3 Deadlocks 3.1. Recursos 3.2. Introdução a deadlocks 3.3. O algoritmo a avestruz 3.4. Detecção e recuperação de deadlock 3.5. Evitando Deadlock 3.6. Prevenindo Deadlock 3.7. Outros assuntos 1

Leia mais

TRANSAÇÕES E CONTROLE DE CONCORRÊNCIA Em resumo: Transações: clientes podem necessitar que um servidor execute uma sequência de requisições de forma a

TRANSAÇÕES E CONTROLE DE CONCORRÊNCIA Em resumo: Transações: clientes podem necessitar que um servidor execute uma sequência de requisições de forma a Transações Transações Uma transação é um conjunto de operações que deve ser executado de forma atômica Atômica : se um erro ocorre no meio da transação, devemos voltar ao estado consistente anterior. Atômica

Leia mais

PROCESSAMENTO DE TRANSAÇÕES

PROCESSAMENTO DE TRANSAÇÕES UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO PROCESSAMENTO DE TRANSAÇÕES Profº Erinaldo Sanches Nascimento Objetivos Discutir a necessidade de controle de concorrência e

Leia mais

Sistemas Operacionais. Sincronização: Semáforos Problema dos Leitores/Escritores

Sistemas Operacionais. Sincronização: Semáforos Problema dos Leitores/Escritores Sistemas Operacionais Sincronização: Semáforos Problema dos Leitores/Escritores Autoria Autores Eduardo André Mallmann 0905/96-9 João Paulo Reginatto 1530/96-0 Local Instituto de Informática UFRGS disciplina:

Leia mais

Aula 9. Deadlocks. Caracterização Grafo de dependência Métodos de tratamento Detecção Recuperação. Universidade Federal de Minas Gerais

Aula 9. Deadlocks. Caracterização Grafo de dependência Métodos de tratamento Detecção Recuperação. Universidade Federal de Minas Gerais Aula 9 Deadlocks 1.1 1.2 1.3 1.4 1.5 1.6 O que é Caracterização Grafo de dependência Métodos de tratamento Detecção Recuperação O quê é Deadlock (1) Propriedade indesejável de um conjunto de processos

Leia mais

BD II (SI 587) Algoritmos de recuperação Avançado e ARIES. Josenildo Silva.

BD II (SI 587) Algoritmos de recuperação Avançado e ARIES. Josenildo Silva. BD II (SI 587) Algoritmos de recuperação Avançado e ARIES Josenildo Silva jcsilva@ifma.edu.br Nota Estes slides são baseados nos slides disponibilizados pelo autor SILBERSCHATZ, para o livro Sistemas de

Leia mais

Sistemas Operacionais. Deadlock

Sistemas Operacionais. Deadlock Sistemas Operacionais Deadlock Deadlocks! Recursos: hardware ou informação! Preemptivo X não preemptivo! Uso do Recurso:! Pedido (Request ou Open)! Uso! Liberação! Um conjunto de processos está em deadlock

Leia mais

Checkpoint. Checkpoint

Checkpoint. Checkpoint Checkpoint SGBD com alta demanda de transações Log de tamanho grande recovery demorado Checkpoint momento em que o SGBD grava no BD todas as atualizações feitas por transações disparo manual ou automático

Leia mais

de Bases de Dados Exame 2

de Bases de Dados Exame 2 Ano lectivo 2009/2010 2 o semestre Administração e Optimização de Bases de Dados Exame 2 Regras O exame tem a duração de 2 horas. O exame é individual e com consulta Só poderá abandonar a sala ao fim de

Leia mais

DEADLOCKS IMPASSES. Vinícius Pádua

DEADLOCKS IMPASSES. Vinícius Pádua DEADLOCKS IMPASSES O que é um Deadlock? 2 O que é um Deadlock? Cenário Dois processos : Gravar CD com dados do scanner Processo A solicita o CD é autorizado Processo B solicita o scanner é autorizado Processo

Leia mais

Banco de dados. Prof. Emiliano S. Monteiro

Banco de dados. Prof. Emiliano S. Monteiro Banco de dados Prof. Emiliano S. Monteiro Processamento de transações Sistema monousuário x multiusuário Um SGBD é monousuário se no máximo um usuário puder utilizá-lo de cada vez. Um SGBD é multiusuário

Leia mais

Concorrência. Prof. Márcio Bueno. Material do Prof. Paulo Pires

Concorrência. Prof. Márcio Bueno. Material do Prof. Paulo Pires Concorrência Prof. Márcio Bueno {bd2tarde,bd2noite}@marciobueno.com Material do Prof. Paulo Pires Controle de Concorrência SGBD sistema multiusuário em geral diversas transações executando simultaneamente

Leia mais

Sumário. Controle de Concorrência

Sumário. Controle de Concorrência Sumário 1 Introdução ao Processamento de Consultas 2 Otimização de Consultas 3 Plano de Execução de Consultas 4 Introdução a Transações 5 Recuperação de Falhas 6 Controle de Concorrência 7 Fundamentos

Leia mais

Relógio Lógico Algoritmo de Lamport. Relógio Lógico Algoritmo de Lamport. Relógio Físico Algoritmo Centralizado. Relógio Físico Algoritmo Centralizado

Relógio Lógico Algoritmo de Lamport. Relógio Lógico Algoritmo de Lamport. Relógio Físico Algoritmo Centralizado. Relógio Físico Algoritmo Centralizado Relógio Lógico Algoritmo de Lamport Objetivo: Sincronização de clocks lógicos Os tempos associados aos eventos não são necessariamente próximos ao tempo real. Os processos não precisam estar de acordo

Leia mais

Desenvolvimento de Aplicações Distribuídas

Desenvolvimento de Aplicações Distribuídas Transação e Controle de Concorrência Pontifícia Universidade Católica de Minas Gerais Instituto de Ciências Exatas e Informática DAD (2019/01) Tópicos Apresentação da disciplina Introdução Desafios e características

Leia mais

Recursos. Exemplos de recursos:

Recursos. Exemplos de recursos: Deadlocks 1. Recursos 2. Introdução aos deadlocks 3. Algoritmo Ostrich (Avestruz) 4. Detecção e recuperação de deadlocks 5. Evitar deadlocks 6. Prevenir deadlocks 7. Considerações Recursos Exemplos de

Leia mais

Problema dos Leitores/Escritores

Problema dos Leitores/Escritores Sincronização: Semáforos Problema dos Leitores/Escritores Autores Eduardo André Mallmann 0905/96-9 João Paulo Reginatto 1530/96-0 Local Instituto de Informática UFRGS disciplina: Sistemas Operacionais

Leia mais

Processamento de Transações

Processamento de Transações Processamento de Transações Banco de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM é

Leia mais

Lock. Administração de Banco de Dados

Lock. Administração de Banco de Dados Lock Administração de Banco de Dados 1 Tópicos o Lock o Tipos de Lock o Recursos que podem ser bloqueados o Dica de Lock sobre uma Tabela o Dica de Lock em uma Sessão o Compatibilidade entre Locks 2 Lock

Leia mais

erro lógico: a transacção não pode completar devido a condição de erro erro de sistema: o sistema entrou num estado que impede a transacção

erro lógico: a transacção não pode completar devido a condição de erro erro de sistema: o sistema entrou num estado que impede a transacção Bases de Dados Recuperação Classificação de falhas Falha de transacção erro lógico: a transacção não pode completar devido a condição de erro erro de sistema: o sistema entrou num estado que impede a transacção

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 6: Monitores, Troca de Mensagens e Deadlock Diego Passos Última Aulas Mecanismos de Exclusão Mútua Operações atômicas. Protocolos de controle de acesso. Spin-locks.

Leia mais

Transações, Controle de Concorrência e o Hibernate. Clodis Boscarioli

Transações, Controle de Concorrência e o Hibernate. Clodis Boscarioli Transações, Controle de Concorrência e o Hibernate Clodis Boscarioli Transações Um conjunto de várias operação em um BD pode ser visto pelo usuário como uma única unidade. Exemplo: A transferência de fundos

Leia mais

Criando Transações. Prof. Fernanda Baião. TbEstoqueLivros. TbEstoqueLivros. ID IDLoja IDLivro Estoque

Criando Transações. Prof. Fernanda Baião. TbEstoqueLivros. TbEstoqueLivros. ID IDLoja IDLivro Estoque Criando Transações Prof. Fernanda Baião fernanda.baiao@uniriotec.com.br SQL Tabelas Exemplo TbAutor TbAutor TbEditora CNPJ TbEditora CNPJ TbLivro ISBN Autor Editora TbLivro ISBN Autor Editora TbLoja CNPJ

Leia mais

MAC422/5753 Sistemas Operacionais

MAC422/5753 Sistemas Operacionais MAC422/5753 Sistemas Operacionais Prof. Marcel P. Jackowski Aula #9 Sincronização no kernel e deadlocks Sobre sincronização... Tarefa complexa e sutil Exemplos através de código-fonte mostrado utilizando

Leia mais

Sistemas Operacionais: Deadlocks

Sistemas Operacionais: Deadlocks Sistemas Operacionais: Deadlocks Definição Deadlocks (impasse) Um conjunto de processos bloqueados cada um de posse de um recurso, esperando por um outro recurso que já está alocado por outro processo

Leia mais

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Sincronização e Comunicação entre Processos. Adão de Melo Neto Sincronização e Comunicação entre Processos Adão de Melo Neto 1 MOTIVAÇÃO 2 INTRODUÇÃO Em um sistema multiprogramado (concorrente) os processos alternam sua execução (ou seja, são executados alternadamente

Leia mais

ORGANIZAÇÃO DE ARQUIVOS INDEXADOS

ORGANIZAÇÃO DE ARQUIVOS INDEXADOS ORGANIZAÇÃO DE ARQUIVOS INDEXADOS Um índice consiste numa coleção de entradas, uma para cada registro de dados, contendo o valor de uma chave de atribuição e um ponteiro de referência que acessa imediatamente

Leia mais