2 - Bloqueio binário

Um bloqueio binário, como o próprio nome diz, confere ao item de dados apenas dois estados: bloqueado ou desbloqueado.

Quando um item de dados está bloqueado, nenhuma operação SQL pode ser feita nele, nem mesmo leitura. Já quando o item de dados está desbloqueado, qualquer operação SQL pode ser feita.

O bloqueio binário é conferido por meio de um bit de acesso a cada item de dado, de cada campo, de cada tabela. Esse bit pode assumir os valores 0 (desbloqueado) ou 1 (bloqueado). O gerenciamento dessa técnica de bloqueio é feito por um bit de controle em cada item de dado do banco de dados (cada campo, de cada registro de cada tabela).

Normalmente, o estado de cada item de dado do banco de dados é 0, ou seja, todos os dados estão acessíveis. Entretanto, quando uma transação é iniciada (start transaction), os itens de dados a serem consultados ou modificados são identificados e há a alteração do bit de acesso para 1, de forma que somente essa transação em execução pode acessar aquele(s) item(ns) de dado. Para as demais transações, o acesso é negado. Após a conclusão da transação (comando commit ou rollback), o bit é resetado, ou seja, volta a ser 0, liberando o acesso ao item de dado.

Caso uma transação tente acessar um item de dado bloqueado, ela entra em espera, e um tempo determinado pela configuração do sistema (SGBD) começa a ser contado. Caso o tempo se esgote sem que a transação inicial tenha desbloqueado o item de dados, a segunda transação recebe uma exceção de erro do tipo “time out” (expirado o prazo de espera). Caso a transação inicial se encerre e libere o acesso antes do prazo de time out, a segunda transação então é executada. Saiba+
Copyright © 2016 AIEC.