Olá Roberto,

Seguindo o mesmo raciocínio colocado por Leandro Dutra, há alguns emails
atrás, de que não importa qual a marca da placa de rede a ser colocada, mas
sim seu desempenho em relação ao processo em si, coloquei o comentário sobre
a criação de processos pra esse modelo de aplicação onde há a necessidade de
um grande volume de consultas.

Atente-se que não estou defendendo a idéia de que é "ruim" ou "inapropriado"
a criação de vários processos pra cada conexão, em todos os casos. Acho-as
necessárias por vezes, onde há a necessidade de separá-las dessa forma.
Estou defendendo que pra esse tipo de aplicação seria mais viável uma outra
abordagem, que não essa.

Não me importa o montante de dados pra demonstrar o que estou defendendo,
que graças a sua má interpretação, foi definido como fruto da ignorância. O
simples fato de alocar mais memória, paginá-la, ou mesmo, mais uma
interrupção no kernel pra relocá-la (no caso de ambientes unix-like),
gastaria tempo e memória que, uma simples camada intermediária resolveria o
mesmo problema de uma outra forma.

Colocando dessa forma, ainda seria possível a construção de uma estrutura de
cache que pudesse ser "avisado" sobre mudanças na base de dados, ou mesmo,
de uma maneira mais "burra", questionar sobre mudanças no sgbd.

Bruno.


2008/3/12 Roberto Mello <[EMAIL PROTECTED]>:

> 2008/3/12 Bruno Simioni <[EMAIL PROTECTED]>:
> > Uma camada intermediária entre as requisições (SQL do PHP) e o acesso ao
> > banco, que se posicionasse de forma a receber requisições, utilizar uma
> > conexão persistida para as queries (através de uma singleton, por
> exemplo),
> > e devolver as respostas, logando as ações de cada usuário que fez a
> > requisição.
>
> PHP já tem conexões persistentes. Já vi várias aplicações em PHP mal
> escritas que simplesmente não funcionam  quando têm conexões
> persistentes habilitadas. Mas isso é um problema da aplicação, não do
> PHP ou do banco de dados.
>
> Além das conexões persistentes, há também intermediários como o
> pgbouncer, que mantém um pool de conexões persistentes ao banco,
> asssim eliminando a necessidade de modificações na aplicação.
>
> Para evitar ir ao banco de dados toda hora para solicitar dados
> freqüentes que não mudam, ora a solução é um bom uso de cache. Não é
> trabalho do banco de dados adivinhar quais dos seus dados ele deve
> fazer cache. Ele tenta, mas obviamente é a um nível bem menos
> específico do que você pode criar conhecendo os detalhes e nuances da
> sua aplicação.
>
> Existem várias soluções nessa área, o memcache sendo uma que vem à
> mente que é bem suportada no PHP.
>
> > Seria uma forma bem viável de resolver o problema da criação de
> processos do
> > postgres, que realmente é grave e inapto pra soluções desse tipo.
> Envolve um
> > overhead desnecessário pra criação de processos que inviabilizaria a
> > solução.
>
> Você tem algum conjunto de dados que demonstre que o uso de múltiplo
> processos do PostgreSQL é um "problema" e ainda por cima "grave"? Me
> desculpe, sem ofensa, mas dizer que o fato de uma aplicação ser
> desenhada ao redor do modelo de múltiplos processos é um "problema" é
> pura e exclusiva ignorância.
>
> Informe-se antes de fazer afirmações de tamanha grandiosidade e
> consequência. Isso simplesmente não é verdade, e há centenas de
> aplicações e dados que demonstram isso. Vide o link que postei
> anteriormente dos testes da tweakers.net.
>
> Roberto
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a