[pyar] Python y sockets

Claudio Freire klaussfreire en gmail.com
Mie Abr 17 01:02:19 ART 2013


2013/4/17 Tonny <tonny.lists en gmail.com>:
>> Repasaria
>> http://initd.org/psycopg/docs/usage.html#thread-and-process-safety
>>
>> Habra un connection pool en esa libreria? Habras usado connection pool de
>> alguna forma en la version de Java?
>
> El nuevo programa en python esta construido muy similar al de java, no se si
> eso sea el problema,
> y en el programa java solo uso JDBC que es el driver de mas bajo nivel en
> java para acceder a bases de datos
> La base de datos que uso es postgres en la version 9.2 y esta optimizada me
> ayudo un amigo experto en esta base, es por eso que en java no tengo el
> problema
> ando buscando el problema de mi script porque ya confío en python y me
> parece mas fácil mantener el código python.
>
> Estoy probando con una sola conección, antes eran varias o sino talves usar
> un pool de conecciones y también voy mañana a probar twister


Deberías usar un thread pool, y cada thread debería tener una conexión
persistente (que no cierra al terminar de procesar un item, sino que
sólo commitea).

Deberías tener tantos threads como discos tenga el postgres, ya que
postgres no va a hacer escalar los inserts más allá de eso, a menos
que tengas habilitado async commit, en cuyo caso podés escalar hasta
#cpus + #discos. Esto asumiendo que el postgres sólo hace esto, y no
se comparte para otras tareas.

Si no te preocupa la transaccionalidad a la precisión, que me parece
que no porque usás UDP, también podés juntar varios insert en una
transacción, en postgres esto afecta mucho la performance, en
particular si no tenés async commit habilitado.



More information about the pyar mailing list