Descansando a Cabeça

Tuesday, October 11, 2011

Transações

Nós  últimos dias acabou meu saco para estudar Godelagem de TI. Então, enquanto eu não estudo CMM, CMMI e MPSBR.

Bom, para não desperdiçar tempo então vou fazer um POST sobre TRANSAÇÕES em banco de dados.



Dirty Read
Nonrepeatable Read
Phatom Read
Read Uncommited
sim
sim
sim
Read Commited
não
sim
sim
Repeteable Read
não
não
sim
Serializable
não
não
não


Níveis de Isolamento

Serializable => O maior nível de isolamento. Na prática é como se as transações executassem em série, então não acontecem fenômenos indesejados de acesso concorrente. Porém, não é possível executar transações que não possam ser serializadas paralelamente.


Repeatable Read => Nesse cenário podem acontecer Phatom Reads.


Read Commited => Enxerga os dados comitados antes da transação iniciar e também os dados modificados pela própria transação atual. Porém nunca os dados modificados não-confirmados por outras transações. Se os dados de outras transações forem confirmados então a transação atual pode ler, nesse caso permitindo Repeatable Read.

Read Uncommited => Aqui a bagaça tá feita. Transações podem ler dados ainda não confirmados então a Dirty Read pode acontecer. Se a transação com os dados não comitados falhar então temos algo inconsistente.

No PGSQL, ná prática, só há 2 níveis de isolamento: Serializable ( que inclui o Repeatable Read) e o Read Commited.

Fenômenos Indesejados

Dirty Read => Um transação pode ler dados de outra transação não confirmada.

Norepeatable Read => Uma transação lê os dados, então volta a ler os dados de novo e descobre que os dados foram modificados.

Phantom Read => A pessoa faz um SELECT e retorna um número de linhas. Faz outro SELECT de novo um obtêm um outro número de linhas.

Atualização Perdida => Ocorre quando duas transações acessam o mesmo item de dados ao mesmo tempo e fazem alguma operação com os dados e depois escrevem esse dado.

X = X + 10;
write (X),;

Imediatamente depois outra faz:

X = X-10;
write(X);

Controle de Concorrência Garante o Isolamento.


No comments:

Post a Comment