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

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

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

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

Diretoria: Vinicius Maran, Querino Junior, Sidnei BarbieriDiretoria: Vinicius Maran, Querino Junior, Sidnei Barbieri

Bloqueios de Atualização Bloqueios de Atualização By Diretoria By Diretoria

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

Diretoria: Vinicius Maran, Querino Junior, Sidnei BarbieriDiretoria: Vinicius Maran, Querino Junior, Sidnei Barbieri

BloqueiosBloqueios

• 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.

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

Diretoria: Vinicius Maran, Querino Junior, Sidnei BarbieriDiretoria: Vinicius Maran, Querino Junior, Sidnei Barbieri

Tipos de bloqueioTipos 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”)

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

Diretoria: Vinicius Maran, Querino Junior, Sidnei BarbieriDiretoria: Vinicius Maran, Querino Junior, Sidnei Barbieri

Status de bloqueioStatus 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

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

Diretoria: Vinicius Maran, Querino Junior, Sidnei BarbieriDiretoria: Vinicius Maran, Querino Junior, Sidnei Barbieri

Bloqueios de Atualização Bloqueios de Atualização (“update lock”)(“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.

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

Diretoria: Vinicius Maran, Querino Junior, Sidnei BarbieriDiretoria: 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.

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

Diretoria: Vinicius Maran, Querino Junior, Sidnei BarbieriDiretoria: Vinicius Maran, Querino Junior, Sidnei Barbieri

O que é...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.

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

Diretoria: Vinicius Maran, Querino Junior, Sidnei BarbieriDiretoria: Vinicius Maran, Querino Junior, Sidnei Barbieri

ExemploExemplo

• T1: ul¹(A); r¹(A); xl¹(A); w¹(A); u¹(A)

• T2: ul²(A); r²(A); xl²(A); w²(A); u²(A)

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

Diretoria: Vinicius Maran, Querino Junior, Sidnei BarbieriDiretoria: Vinicius Maran, Querino Junior, Sidnei Barbieri

Table Update LockTable Update Lock

SharedShared ExclusiveExclusive

ReadRead TrueTrue FalseFalse

Read/WriteRead/Write FalseFalse FalseFalse