Excerpts from Diego Ayala's message of lun abr 25 08:52:20 -0300 2011:
> Buenos dias a todos, tal vez, este sea un tema ya repetido, pero como ya no
> se que pensar o que hacer recurro a ustedes, tenemos un sistema web de
> subasta a la baja electronica, desarrollado en java, y base de datos
> PostgreSQL 8.4.1 de 64 bits, con 12 GB  de RAM y  2 cuad core de cpu. con un
> disco de 300 GB. en 1+0.
> 
> El tema es el siguiente, algunas subastas tienen entre 40 a 50 oferentes,
> los cuales, a su vez cuentan con 4 a 5 maquinas que constantemente ejecutan
> el proceso de lances y mensajes, el sistema ejecuta cada 10 seg. de forma
> automatica  algunos select, para refrescar la ventana, obviamente, se
> generan locks, pero desde web server donde se encuentra la aplicacion de la
> subasta casi todas las conexiones quedan en IDLE IN TRANSACTION, teniendo
> una discusion con los desarrolladores, defendi la teoria de que el problema
> es la aplicacion, pero ellos, obviamente, dicen q es la base la que no
> responde por lo tanto eso hace que queden los IDLE IN TRANSACTION.
> Esto hace q incluso todo el sistema aparte del de subasta se enlentezca
> bastante.. que podria hacer, o q m recomiendan

Repensar la aplicación.  Lo que debería hacer la aplicación es: abrir
transacción, enviar los select, cerrar transacción.  Si tienes que
esperar 10 segundos hasta el próximo refresco, DEBES cerrar la
transacción en ese intervalo.

Si el select es uno solo, entonces NO abras transacción antes de
lanzarlo.

Los desarrolladores están equivocados.  Cuando se trata de bases de
datos, casi siempre lo están porque tienen preconcepciones erróneas
sobre cómo funciona.

-- 
Álvaro Herrera <[email protected]>
-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a