A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Bloqueios de Atualização

Apresentações semelhantes


Apresentação em tema: "Bloqueios de Atualização"— Transcrição da apresentação:

1 Bloqueios de Atualização
By Diretoria Diretoria: Vinicius Maran, Querino Junior, Sidnei Barbieri

2 Diretoria: Vinicius Maran, Querino Junior, Sidnei Barbieri
Bloqueios O uso do objeto de forma concorrente é obtido através de bloqueios. Cada bloqueio é associado a um único objeto e a um único cliente, tendo em vista que impedem que outras transações atuem. Assim, o cliente deve obter o bloqueio apropriado antes de acessar o objeto compartilhado. Diretoria: Vinicius Maran, Querino Junior, Sidnei Barbieri

3 Diretoria: Vinicius Maran, Querino Junior, Sidnei Barbieri
Tipos de bloqueio Bloqueio de leitura (“read lock”), Bloqueio de escrita (“write lock”), Bloqueio de atualização (“update lock”), Intenção de bloquear para leitura (“intention read”), Intenção de bloquear para escrita (“intention write”) Diretoria: Vinicius Maran, Querino Junior, Sidnei Barbieri

4 Diretoria: Vinicius Maran, Querino Junior, Sidnei Barbieri
Status de bloqueio Todo dado possui um status que pode ser: Liberado (Unlocked - U) Com bloqueio compartilhado (Shared lock - S)  Leitura Com bloqueio exclusivo (eXclusive lock - X)  Leitura+Atualização Diretoria: Vinicius Maran, Querino Junior, Sidnei Barbieri

5 Bloqueios de Atualização (“update lock”)
Transações de atualização adquirem locks de leitura e escrita, e os mantém até o final da execução (ou seja, transações seguem lock de duas fases). Cada operação de write com sucesso resulta na criação de uma nova versão do dado. Cada versão do dado tem uma única timestamp que é o valor de um contador ts_counter, incrementado durante o processo de validação. Diretoria: Vinicius Maran, Querino Junior, Sidnei Barbieri

6 Diretoria: Vinicius Maran, Querino Junior, Sidnei Barbieri
Nas transações de leitura apenas são atribuídas timestamps (rótulo da nova versão de dado criada a cada atualização bem sucedida) com o valor corrente de ts_counter antes do início de sua execução, mas quando uma transação de atualização deseja ler um dado, deve obter um lock compartilhado. Então, lê a versão mais recente cria uma nova versão do item com timestamp = ∞. Logo: Atualizações que iniciam apenas após a incrementação do ts_counter acessaram valores atualizados e as demais acessarão o valor antes da atualização. Diretoria: Vinicius Maran, Querino Junior, Sidnei Barbieri

7 Diretoria: Vinicius Maran, Querino Junior, Sidnei Barbieri
O que é... Um bloqueio de atualização concede a uma transação T apenas o privilégio para ler X, não para gravar X. Somente o bloqueio de atualização pode ser atualizado mais tarde para um bloqueio de gravação Um bloqueio de leitura não pode ser atualizado Podemos conceder um bloqueio de atualização sobre X quando já existem bloqueios compartilhados sobre X, mas, uma vez que existe um bloqueio de atualização sobre X, impedimos bloqueios adicionais de qualquer tipo. Diretoria: Vinicius Maran, Querino Junior, Sidnei Barbieri

8 Diretoria: Vinicius Maran, Querino Junior, Sidnei Barbieri
Exemplo T1: ul¹(A); r¹(A); xl¹(A); w¹(A); u¹(A) T2: ul²(A); r²(A); xl²(A); w²(A); u²(A) Diretoria: Vinicius Maran, Querino Junior, Sidnei Barbieri

9 Diretoria: Vinicius Maran, Querino Junior, Sidnei Barbieri
Table Update Lock Shared Exclusive Read True False Read/Write Diretoria: Vinicius Maran, Querino Junior, Sidnei Barbieri


Carregar ppt "Bloqueios de Atualização"

Apresentações semelhantes


Anúncios Google