[firebase-br] RES: Preciso de uma opinião (foto no banco de

Ivan Brasil Fuzzer ivan em cyber.inf.br
Sex Fev 5 21:10:54 -03 2010


Se estivermos falando de um servidor de arquivos externo ao servidor de banco, a abordagem muda e cairemos no mesmo problema. 
Quanto a duas ou mais pessoas alterar uma imagem ao mesmo tempo, você mantém a transação aberta enquanto edita um arquivo que está no banco? 
Volto a me corrigir dizendo que quando disse "jamais" estava querendo dizer raramente, a pressa foi minha inimiga. 

----- Mensagem original ----- 
De: "Elton da Motta Barbosa" <embarbosa em gmail.com> 
Para: lista em firebase.com.br 
Enviadas: Sexta-feira, 5 de Fevereiro de 2010 18:15:43 (GMT-0300) Auto-Detected 
Assunto: [firebase-br] RES: Preciso de uma opinião (foto no banco de 

>>Quando você consultar a imagem no banco, este trará a imagem para o disco para então devolver o arquivo para a aplicação. >>Alguns podem dizer que ficará em memória, mas temos que lembrar que memória acaba e quando tratamos de arquivos as >>porções de memória a serem utilizadas são maiores e inevitavelmente o arquivo vai para o disco. 

Não sei se entendi bem. Explique me a diferença da afirmação acima 
para a abaixo: 

Quando você consultar a imagem NO SERVIDOR DE ARQUIVOS (mesmo que seja 
local), este trará a imagem para o disco para então devolver o arquivo 
para a aplicação. Alguns podem dizer que ficará em memória, mas temos 
que lembrar que memória acaba e quando tratamos de arquivos as porções 
de memória a serem utilizadas são maiores e inevitavelmente o arquivo 
vai para o disco. 

Não vejo tanta diferença nos dois métodos, exceto que: 

a) o FB não possui compactamento dos pacotes enviados pela rede (pelo 
menos até onde eu sei, no entanto normalmente ninguém faz isso com 
arquivos de imagens...)... 
b) Um servidor de arquivos não tem controle de transações (mesmo sendo 
ele a máquina local). Então não tente alterar a imagem do usuário em 
dois clientes ao mesmo tempo... Dirty Read... (a menos que vc use 
algum tipo de lock) 
c) num servidor de arquivos (em rede ou VM) você terá que adicionar 
permissões de escrita para cada cliente (acho que alguém já mencionou 
isso...) 

Tenha o cuidado do seguinte, se você tiver um grid que busca os 
dados e ele for uma query ou table que já carrega o BLOB com certeza 
vc vai consumir muito mais recursos (locais e/ou na rede), mesmo que 
só mostre um registro por vez. Isso não aconteceria no caso de vc 
buscar o arquivo já que sempre leria apenas o arquivo a ser mostrado. 
No entanto, uma vez lido a imagem de um servidor de arquivos, se 
alterar de registro e depois voltar nele, o programa lerá a imagem 
novamente. Mesmo assim, você poderá simular essa situação com o BD por 
fazer um select com os dados necessários SEM a imagem, e num outro 
query (digamos filho) buscar apenas a imagem do registro corrente. 
Nesse caso a limitação do servidor de arquivos também se aplicam. 

Há limitações em ambos os casos. Não podemos definir a melhor 
situação para você sem conhecer todos os pormenores do sistema, como 
hits esperados, métodos de acesso, estrutura de Rede, clientes 
esperados, outros bancos rodando no sistema, hardware do servidor e 
dos clientes, etc... 
Também aconselho você procurar nesta lista. Tivemos uma boa 
discussão sobre esse assunto, se não me falha a memória por volta do 
segundo ou terceiro trimestro do ano passado. 
Abraços, 

______________________________________________ 
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 


-- 

:: Ivan Brasil Fuzzer :: 
Tecnocyber Automação de Negócios Ltda 
Setor de Infraestrutura 
Av. Salgado Filho, 85 - Apto 120 
Erechim - RS - 99700-000 
Fone: (54) 3522-3313 



Mais detalhes sobre a lista de discussão lista