You can edit almost every page by Creating an account. Otherwise, see the FAQ.

Controle de concorrência

Fonte: EverybodyWiki Bios & Wiki


Nas área de banco de dados o controle de concorrência serve para garantir a validade dos resultado de transações executadas simultaneamente de forma manter a integridade do banco de dados e a preserva as propriedades ACID especialmente a propriedade de isolamento que determina que uma transação não pode interferir em outra (como por exemplo a leitura de um dado ainda não efetivado) por isso um bom controle de concorrência é essencial em qualquer banco que permita a execução de mais de uma transação ao mesmo tempo.

Esse controle é feito pelo Sistema de Gerenciamento de Banco de Dados (SGBD). Para garantir a consistência do banco o SGBD normalmente permiti apenas que transações serializáveis sejam geradas. Um escalonamento não-serial mal definido pode gerar problemas como:

  • atualização perdida (lost-update)
  • leitura suja (dirty-read)

O escalonamento dessas transações é responsabilidade do subsistema de controle de concorrência ou scheduler. Ele tem o deve evitar escalonamentos inválidos, para isso ele exige a analise de operações que estão em conflito ou seja operações de transações diferentes que acessam o mesmo dado onde uma dessas operações é uma operação de escrita no banco.

O controle de concorrência também deve permitir a recuperação do banco de dados oque significa manter a consistência do banco caso uma transação seja abortada e também garantir que a validade de uma transação que foi efetivada seja comprometida por conta de outra transação que foi abortada. Para isso o scheduler deve impedir a leitura de dados que ainda não foram efetivados (Leitura suja) ja que caso essa transação seja abortada depois os dados que ela alterou sejam desconsiderados sem afetar outras transações (como por exemplo caso uma primeira transação altere um dado e então uma segunda transação que utilize esse dado seja efetivada e após isso a primeira transação seja abortada: nesse caso o resultado da segunda operação estaria errado por ela ter utilizado um dado sujo que devia ser desconsiderado).

Referências[editar]


Este artigo "Controle de concorrência" é da wikipedia The list of its authors can be seen in its historical and/or the page Edithistory:Controle de concorrência.



Read or create/edit this page in another language[editar]