Em 24 de setembro de 2015 09:30, Flavio Henrique Araque Gurgel <
fha...@gmail.com> escreveu:

> Bom dia Pessoal
>> para apimentar um pouco mais, ja que fui eu quem iniciou a thread,
>> abaixo segue as latências enviado pelo pessoal da representante da
>> Amazon no Brasil.
>> no nosso caso vai ficar complicado utilizar os datacenter fora do
>> Brasil, devido nosso ERP (delphi) ser em duas camadas, com o aplicativo
>> na maquina do cliente apontando o banco para o datacenter. Neste caso
>> teríamos que utilizar Terminal Server.
>> Atualmente nosso banco está no datacenter da UOLDIVEO e temos uma
>> latência media de 40s e os clientes reclamam as vezes da lentidão.
>>
>
> Aplicação cliente-servidor sofre muito com latência até o banco de dados,
> normalmente são péssimas candidatas a ir pra nuvem. As diversas consultas
> necessárias para montar uma tela, por exemplo, multiplica a latência.
> Exemplo:
>
> Uma tela que precise de 5 consultas. Se a latência é de 40ms, isso dá
> 200ms, sem contar o tempo de executar as consultas no servidor e mais o
> processamento local com os dados retornados. Se considerarmos BEGIN et
> COMMIT, junta mais 80ms.
>
> No exemplo acima, se a latência for de 200ms (usuário no Brasil e servidor
> nos EUA), seu tempo só de latência sobe para 1,4 segundos! Uma eternidade.
>
> Sim, é inviável no seu caso.
>
> Se vocês gostariam mesmo de ir pra "nuvem", sugiro reescrever uma
> aplicação web, onde o servidor de aplicação fica próximo do banco de dados.
> Nesse caso, o cliente não sente ou sente muito pouco a latência, uma vez
> que a quantidade de idas e vindas se reduz à requisição da página e o
> retorno dela. As idas e vindas aplicação-banco de dados são sempre rápidas,
> normalmente inferiores a 10ms.
>
> Taí, não precisa ser bidu pra calcular o efeito da latência usando dados
> aproximados.
>
> Claro que sua solução de "terminal server" tem um efeito parecido de
> redução de latência, como uma aplicação web.
>
>
> ​No passado tive problema com a latência, mesmo utilizando uma aplicação
web, o usuário reclamava de lentidão, pois fazia-se leitura de código de
barras, e o usuário era mais rápido que a aplicação.

Nesse processo de leitura, a aplicação fazia algumas validações, o problema
era que cada validação representava uma requisição ao banco de dados, então
multiplicando cada requisição pela latência, esse processo todo levava
quase 2 segundos (que eternidade)...

A solução foi tirar as validações da aplicação e colocar no banco de dados,
pois assim a aplicação fazia apenas uma requisição, o banco de dados
processava e retornava o que tinha que retornar, com isso, conseguimos
reduzir para apenas alguns milissegundos o processo e deixar o cliente
feliz :)

Douglas, analise todo o processo e tente reduzir a quantidade de
requisições que a aplicação faz ao banco de dados, com isso você conseguirá
reduzir o tempo total do processo.

[]s
Danilo
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a