-
-
-
-
CENAPAD-MGCO
A seguir: Travamento em duas fases
Acima: Transações e o Protocolo
Anterior: Escalonamentos
Consideremos as transações:
| T1 |
T2 |
| A := A + 100; |
A := 2*A; |
| B := B + 100; |
B := 2*B; |
e suponhamos que a única restrição de consistência seja A = B.
T1 e T2 são individualmente consistentes, mas sua
execução simultânea pode provocar os seguintes efeitos:
- Inconsistência temporária :
entre o primeiro e o segundo comando de cada transação, A=B
não é obedecida
- Conflitos em uma das entidades
- Conflitos resultantes de um escalonamento
em que após o término
das transações o estado do sistema resulte inconsistente
A inconsistência temporária é inerente ao sistema, e
não provoca inconvenientes
Conflitos têm que ser evitados, pois levam a estados inconsistentes
Formas de se evitar conflitos:
- exclusão mútua global :
penalidade inaceitável no desempenho
- particionamento em blocos com exclusão mútua, com cada
transação restrita a um bloco: complica o acordo com o
programador de transações, e é inaceitável em muitos
casos
- solução adotada: travamento de entidades individuais com
controle de concorrência forçando a consistência dos
escalonamentos
Next: Travamento em duas fases
Up: Transações e o Protocolo
Previous: Escalonamentos
Osvaldo Carvalho
-
Postscript -
Comentários?