[pyar] Python servlet ?

Sebastian E. Ovide sebastian.ovide en gmail.com
Dom Feb 12 19:00:24 ART 2012


Hola de nuevo lista,

Efectivamente la pregunta de como hacer "Java EE X" en "Python EE " surge
de charlas con los companeros de trabajo. Nuestro productos son 99% en
Java... pero también hay quien sabe de C, Perl, PHP, Ruby etc.... Y Python
es mi favorito en términos de placer de programacion....

El problema concreto que origino la pregunta es el siguiente: Tenemos una
aplicacion que busca (fonéticamente) direcciones (numero de casa, calle,
barrio, código postal etc...) en un DB de 28M de direcciones. El tiempo de
respuesta TIENE que ser < 500ms y throughput >  10/s.... usar Oracle fuzzy
search no existe !!!! conseguimos tener buenos tiempos usando un index
especial (patricia tree) completamente en memoria... logramos muy buenos
resultados tambien usando Lucene (no se si existe en Python) que crea
indexes muy buenos... tambien en memoria (pero sando mucha menos que el
patricia tree).... y resultados decentes tambien usando un disco SSD para
los indexes en vez que la RAM....  Lo tenemos hecho en Java (Java EE
integrado con la security etc...) y desde JS tenemos un autocomplete que
llama un REST.

Pero hay muchas otros problemas reales parecidos... (quizás con menos
memoria). Practicamente cualquier servicio a tiempo casi real (respuesta <
al medio segundo) que use bastante memoria (y CPU).... Seria impensable
pensar en cargar un par de megas (que no es nada) por cada request.... es
mas... incluso crear un simple objeto por cada request es caro si queres
usar el hardware al maximo....

Asique Andres, empiezo a coincidir con vos.... quizás otras herramientas
(como Java EE por ejemplo) sean mas adecuadas para este tipo de
problemas.... o como varios propusieron, crear un proceso en background (en
cualquier lenguage) que haga el trabajo heavy  y en algun modo hacerlo
comunicar con algún web framework (Django o web2py).... Yo digo Java EE
simplemente porque en este momento lo estoy usando en el trabajo y se que
viene con todo lo necesario para la web y para en background processing....
(aunque si Python como lenguage me gusta mas que Java)

abrazo

2012/2/9 <andres.osinski en gmail.com>

> Depende del motivo por el cual tengas tantos datos. Si tenes varios gigas
> de datos que residen en una estructura de datos, podes usar Redis y traerte
> lo que necesitas on demand, asumiendo que no tenes un volumen alto de datos
> con los que realmente trabajas.
>
> Si necesitas tener objetos de Python necesariamente, tener un proceso
> aparte y comunicarte por el mismo es una buena idea. Podes usar Redis,
> RabbitMQ, ZeroMQ o Beanstalkd para comunicarte con el proceso. Esto es
> asumiendo que tu proceso no sea intensivo en CPU, en cual caso podes probar
> alguna implementacion de Python que no tenga GIL, si la estructura de datos
> no cambia, y usar el modulo de multiprocessing para copiar el proceso y
> manejar muchos requests simultaneamente (mi impresion, si no me equivoco,
> es que por lo menos en Linux las paginas se copian por copy-on-write, asi
> que mientras no toques los datos no va a haber mucha duplicacion de
> memoria).
>
> No obstante, si tenes 16 gigas de objetos en Python con estado mutable
> concurrentemente, creo que elegiste el lenguaje equivocado para el problema.
> Enviado desde mi BlackBerry de Movistar (http://www.movistar.com.ar)
>
> -----Original Message-----
> From: "Sebastian E. Ovide" <sebastian.ovide en gmail.com>
> Sender: pyar-bounces en python.org.ar
> Date: Mon, 6 Feb 2012 22:29:42
> To: <pyar en python.org.ar>
> Reply-To: Python Argentina <pyar en python.org.ar>
> Subject: [pyar] Python servlet ?
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>



-- 
Sebastian E. Ovide
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20120212/0fea32ac/attachment.html>


More information about the pyar mailing list