Sistemas
Ciência da Computação UFG – Catalão/GO Prof. Márcio Antônio Duarte
Controle de Concorrência
Objetivo
Assegurar a propriedade de não interferência ou isolamento das transações executadas concorrentemente. A maioria das técnicas assegura a serialização dos planos de execução usando protocolos que garantem essa característica.
Controle de Concorrência
Quatro conjuntos de protocolos: 1 - Bloqueios: bloqueiam os itens para impedir que outras transações o utilizem; 2 - Timestamp (marcas de tempo): cria um identificador único para cada transação; 3 - Multiversão: utilizam múltiplas versões de um item de dado; 4 - Protocolos otimistas: baseados em validação ou certificação;
Controle de Concorrência
Tipos de bloqueio: · Bloqueio binário - Pode assumir 2 estados: bloqueado e desbloqueado (1 ou 0); - Nos referimos ao valor do bloqueio de X como lock(X); - Duas operações são usadas: lock_item e unlock_item;
Controle de Concorrência
Se o valor do lock em x é 1, então o item x não pode ser acessado por uma operação do Banco de Dados que requisita o item. Se o valor do Lock em x é 0, então o item x pode ser acessado quando requisitado. Uma transação requere acesso à um item x usando uma operação lock_item(x). Se Lock(x) = 1, a transação é forçada a esperar. Quando a transação termina a operação envolvendo o item x, uma operação de unlock_item(x) é usada, fazendo com que Lock(x) := 0 para que x possa ser acessada por outras transações.
Controle de Concorrência
Operação Lock_item(X):
B: if lock_item(X) = 0 (desbloqueado) then lock(X) = 1 (bloqueado) else begin Wait (até que lock(X) = 0 e o gerenciador de bloqueio reinicia a transação)
Go to B End
Operação Unlock_item(X)
Lock(X) = 0;
Controle de Concorrência
O SGBD tem um subsistema gerenciador de bloqueio para manter e controlar o acesso aos bloqueios Ao se utilizar o bloqueio binário toda transação devera