[firebase-br] RES: RES: Transação com Select ?

Felipe Aron felipearon em gmail.com
Dom Fev 17 20:14:45 -03 2008


Muito obrigado pela explicação. Muito bem explicada :)
Abraço.

2008/2/15 Daniel / Tecnobyte <temp2 em tecnobyte.com.br>:

> Complementando...
>
> Dependendo do nível de isolamento da transação usada no SELECT você poderá
> ter alguns comportamentos distintos. Veja um exemplo:
>
> 1. Conexão1 inicia uma transação.
>
> 2. Conexão2 inicia uma transação e modifica um registro.
>
> 3. Conexão1 dá um select no registro alterado por Conexão2. Neste select
> deverá aparecer o que Conexao2 modificou (leitura suja) ou deve pegar a
> versão anterior do registro? A resposta é: depende do nível de isolamento
> da
> transação.
>
> 4. Conexão2 confirma a transação (commit).
>
> 5. Conexão1 dá um novo select no registro alterado por Conexão2. Neste
> select deverá aparecer o que Conexao2 modificou (read commited)  ou deve
> pegar a versão anterior do registro? A resposta é: depende do nível de
> isolamento da transação.
>
> Se o SELECT não estivesse dentro do contexto de uma transação, como
> poderia
> ser feito o controle de versões do registro no caso de acesso concorrente
> (duas ou mais transações simultâneas)?
>
> O controle de versão dos registros são feitos com base na identificação
> das
> transações que modificam os dados. É um controle de versão dos dados de
> modo
> que um mesmo registro pode estar gravado várias vezes no banco
> (alterações)
> e a última versão commitada é que será considerada "atual".
>
> Mais alguma observações:
>
> 1. As versões antigas de um registro, quando não for mais necessária
> dentro
> do controle transacional, poderá ser reutilizada pelo FB para gravar novos
> registros, evitando assim que mais espaço em disco seja alocado.
>
> 2. Enquanto houver pelo menos uma transação ativa, dependendo do nível de
> isolamento utilizado, a última versão de cada registro no momento em que a
> transação foi iniciada não poderá ser reutilizada pelo banco para gravar
> outro registro no local. Manter uma transação ativa por muito tempo neste
> caso fará com que o arquivo de banco de dados cresça mais que tendo
> transações de pequena duração.
>
> 3. Algumas funções do FB dependem do controle transacional (funções de
> data
> e hora). Não me recordo quais exatamente, mas há dois casos:
>
> 3.1. Algumas funções mantém o valor de data e hora de quando a transação
> iniciou.
>
> 3.2. Outras funções pegam a data e hora realmente atual, independente de
> quando iniciou a transação.
>
> Espero que isto ajude.
>
> Atenciosamente.
>
> Daniel P. Guimarães
> Tecnobyte Informática
> www.tecnobyte.com.br
>
> ----- Original Message -----
> From: "Carlos H. Cantu (TeamFB)" <listas em warmboot.com.br>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Friday, February 15, 2008 7:54 AM
> Subject: Re: [firebase-br]RES: RES: Transação com Select ?
>
>
> DEBW> Qual é a lógica de se usar transação para Select?
>
> A lógica é que para garantir o correto isolamento dos dados, tudo tem
> que estar dentro de uma transação, inclusive os selects. Isso faz
> parte da arquitetura de Versioning.
>
> []s
> Cantu (Membro do TeamFB - FireBase)
> http://www.warmboot.com.br
> FireBase - http://www.FireBase.com.br
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



-- 
Com a força aprenda a suavidade. Através da suavidade a força prevalecerá!



Mais detalhes sobre a lista de discussão lista