Escalonamento Concorrente

Nem todas as execuções concorrentes resultam num estado de integridade.

  • i.e. não produzem resultados iguais aos que obteríamos com um escalonamento serializado

O resultado final é um estado inconsistente

  • Se T1 e T2 fossem executadas em série o resultado final seria:

    • A = 45;

    • B = 100.

  • Em vez disso temos:

    • A = 50;

    • B = 100

Escalonador

Entidade responsável pela definição de escalonamentos concorrente de transações.

Um determinado escalonamento E define uma ordem de execução (intercalada) das operações de várias transações.

  • A ordem das operações dentro de cada transação é preservada.

Problemas de um escalonamento concorrente

  • atualização perdida (lost-update);

  • leitura suja (dirty-read);

Situações de conflito:

  • operações que pertencem a transações diferentes;

  • transações acedendo ao mesmo elemento;

  • pelo menos uma das operações é write.

Problema de Atualização Perdida

Uma transação T1 grava um dado que entretanto já tinha sido lido e utilizado na transação T2...

Problema de Leitura Suja

T1 atualiza um elemento A e, posteriormente, outras transações leem A.

No entanto T1 falha e as suas operações são desfeitas...

Last updated